7

私はJFrameを持っています。この JFrame には JButton が含まれています。JButton をクリックすると、10 個の JTextField が作成されます。

問題:ウィンドウのサイズを変更して「repaint()を強制する」まで、それらを見ることができません。そうして初めて、作成された JTextField が表示されます。

コード:

JPanel points = new JPanel();

//Creating the JTextFields:
for (int i=0; i<10; i++) {
    JTextField textField = new JTextField();
    points.add(textField);
}

repaint();
this.repaint();
super.repaint();
points.repaint();

ありがとうございます - for ループの後、points.validate() を呼び出したところ、うまくいきました...

4

1 に答える 1

15

Container.addAPI ドキュメントには次のように記載されています。

注: 表示されているコンテナーにコンポーネントが追加されている場合、新しいコンポーネントを表示するには、そのコンテナーで validate を呼び出す必要があります。複数のコンポーネントが追加されている場合は、すべてのコンポーネントが追加された後、validate を 1 回だけ呼び出すことで効率を向上させることができます。

あいまいであまり賢いわけではありませんが、それがルールです。電話したほうがいいかもしれませんJComponent.revalidate

于 2008-12-15T21:56:12.637 に答える