2

次のようにJavaでテキストフィールドを作成しました。「クリア」ボタンをクリックすると、これらのテキスト フィールドをすべて一度にクリアしたいと考えています。

private javax.swing.JTextField num1;
private javax.swing.JTextField num2;
private javax.swing.JTextField num3;
private javax.swing.JTextField num4;
private javax.swing.JTextField num5;
private javax.swing.JTextField num6;
private javax.swing.JTextField num7;

for ループを使用して、次のようなすべてのテキスト フィールドをクリアする方法を知りたいと思います。

for(int i=1;1<7;i++){
   num[i].settext(null);
}
4

2 に答える 2

7

いくつかの重要なことを考慮して、 container.getComponents() メソッドによってコンテナ内のコンポーネントを簡単に取得できます。

  1. JPanelのような別のコンテナがあるかもしれません。
  2. JLabel、JButton、....のような別のコンポーネントがあるかもしれません。

次の方法を使用します。

public void clearTextFields (Container container){

  for(Component c : container.getComponents()){
   if(c instanceof JTextField){
     JTextField f = (JTextField) c;
     f.setText("");
 } 
  else if (c instanceof Container)
     clearTextFields((Container)c);
}
}

次のようにメソッドを呼び出します。

clearTextFields(this.getContentPane());
于 2013-07-21T21:56:11.653 に答える