2012-04-22 10 views

答えて

8

これはあなたの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()); 
} 
+0

ありがとうFORループを使用したJFrameのすべてののJTextFieldをクリアします答えは、それは動作します。変わったことは、これらのコンポーネントで何もできないということです。 forループの内部では、次の条件があります。if(c instanceof JTextField){ JTextField j =(JTextField)c; System.out.println(j); j.setText( "ABCD"); }それはjのtostringを表示しますが、テキストやアイディアを設定しませんでしたか? –

+0

*「何か考えていますか?」* 1)別の(新しい)質問をしてください。 2)[SSCCE](http://sscce.org/)を追加します。 3)この珍しい要求に対して、ユースケース、必要性を説明する。 4)EDTで更新が行われていることを確認します。 –

0

次のコードは、

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(""); 
    } 
} 
関連する問題