私は1日中から解決できないスイングに問題があります。 誰かがJTextField
に入力すると、JWindow
にポップアップを表示したいと思います。 しかし、レイアウトでJGoodies FormLayout
を使用していて、1行に多くのコンポーネントがある場合は、表示が壊れてしまいます。JGoodies FormLayoutとJWindow
ご意見はありますか?
コードJavaで:ヤンスコードとタイピング "" sowly 3回を編集した後
:
スクリーンショット2番目のテキストフィールドにいくつかの文字を入力した後:
package eu.eyan;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JWindow;
import com.jgoodies.forms.factories.CC;
import com.jgoodies.forms.layout.FormLayout;
public class Snippet {
public static void main(String[] args) {
JTextField tf = new JTextField(10);
JPanel panel = new JPanel();
panel.setLayout(new FormLayout("p", "p,p,p"));
panel.add(new JTextField("before"), CC.xy(1, 1));
panel.add(tf, CC.xy(1, 2));
panel.add(new JTextField("after"), CC.xy(1, 3));
JFrame frame = new JFrame();
frame.setLayout(new FormLayout("p,p,p", "p"));
frame.add(new JLabel("bef"), CC.xy(1, 1));
frame.add(panel, CC.xy(2, 1));
frame.add(new JLabel("aft"), CC.xy(3, 1));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.pack();
JWindow popup = new JWindow();
popup.setLayout(new FormLayout("p", "p"));
JLabel l = new JLabel("popup");
popup.add(l, CC.xy(1, 1));
popup.pack();
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
popup.setVisible(true);
}
});
}
}
? BTW 'valパネル=新しいJPanel();' 'val'とは何ですか?もっと早く助けを求めるには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –
梱包: フレーム。パッケージ - >アプリケーション用 popup.pack - > JWindowポップアップ用 val:私が書いたコードはScalaで書かれています。 – Andras
'' KeyEvent'が検出されるまで 'popup'はパックされていないようです。それは見えるようになる前に**パックされるべきです! –