3
私は簡単な質問があります。私はjavax.swing.JFrameで作られたプロジェクトを持っています。私はJframeで追加したすべてのオブジェクトを繰り返し処理したいと思います。それは可能ですか、どうすればいいですか?Jframeのすべてのオブジェクトを繰り返します。
私は簡単な質問があります。私はjavax.swing.JFrameで作られたプロジェクトを持っています。私はJframeで追加したすべてのオブジェクトを繰り返し処理したいと思います。それは可能ですか、どうすればいいですか?Jframeのすべてのオブジェクトを繰り返します。
これはあなたのJFrameのcontentPaneで内部のすべてのコンポーネントを反復処理し、コンソールに出力します:
はpublic void listAllComponentsIn(Container parent)
{
for (Component c : parent.getComponents())
{
System.out.println(c.toString());
if (c instanceof Container)
listAllComponentsIn((Container)c);
}
}
public static void main(String[] args)
{
JFrame jframe = new JFrame();
/* ... */
listAllComponentsIn(jframe.getContentPane());
}
次のコードは、
Component component = null; // Stores a Component
Container myContainer;
myContainer = this.getContentPane();
Component myCA[] = myContainer.getComponents();
for (int i=0; i<myCA.length; i++) {
JOptionPane.showMessageDialog(this, myCA[i].getClass()); // can be removed
if(myCA[i] instanceof JTextField) {
JTextField tempTf = (JTextField) myCA[i];
tempTf.setText("");
}
}
ありがとうFORループを使用したJFrameのすべてののJTextFieldをクリアします答えは、それは動作します。変わったことは、これらのコンポーネントで何もできないということです。 forループの内部では、次の条件があります。if(c instanceof JTextField){ JTextField j =(JTextField)c; System.out.println(j); j.setText( "ABCD"); }それはjのtostringを表示しますが、テキストやアイディアを設定しませんでしたか? –
*「何か考えていますか?」* 1)別の(新しい)質問をしてください。 2)[SSCCE](http://sscce.org/)を追加します。 3)この珍しい要求に対して、ユースケース、必要性を説明する。 4)EDTで更新が行われていることを確認します。 –