2017-05-22 4 views
4

私のプログラムでは、12個の異なるトグルボタンが同時にリセットする必要があります。代わりに、12種類のトグルボタンのために何度もボタンをリセットする方法は?

buttonOne.setText(""); 
buttonOne.setSelected(false); 
buttonOne.setEnabled(true); 

を書いて、パラメータを渡すことによって、方法でこれを行う方法はありますか?私は最近、Javaを開始したし、文字列やintsではないパラメータ宣言を使用したことがないので、トグルボタンでそれを行う方法があるかどうかはわかりませんでした。

答えて

4

あなたは新しいメソッドのパラメータとしてのボタンを渡し、そしてあなたは、あなたがでそれらのボタンを置くことができ、一度にすべてのこれらのボタンをトリガしたい場合は、そのパラメータ

private void toggleButton(JToggleButton button) { 
    button.setText(""); 
    button.setSelected(false); 
    button.setEnabled(true); 
} 

// ... 

toggleButton(buttonOne); 
toggleButton(buttonTwo); 
... 
+0

ありがとうございましたが、何らかの理由で私は取得していますこれは無効なメソッド宣言であり、戻り値の型が必要であるというエラーです。なぜあなたは知っていますか? – quinny

+0

@quinnyあなたのメソッドは 'Button'ではなく' JButton'を取るべきで、何も返さないようにしてください –

+0

@YCF_L JButtonは "シンボルを見つけることができません"というエラーを受け取りました – quinny

3

であなたのメソッドを呼び出すことができますリストとん:

for (JButton button : myListOfButtons) { 
    button.setText(""); 
    button.setSelected(false); 
    button.setEnabled(true); 
} 
3

あなたはパネル内のすべてのボタンをリセットするか、このメソッドを呼び出して使用することができFRAMする場合:

private void clearAllFields() { 

    for (Component C : myPanel.getComponents()) { 

     if (C instanceof JButton) { 
      ((JButton) C).setText(""); 
      ((JButton) C).setEnabled(true); 
      ... 
     } 
    } 
} 

魔女はすべてのコンポーネントをスローして、それがJButtonのインスタンスであるかどうかをチェックし、デフォルト値にリセットします。あなたは多くのコンポーネントを使用することができることを

このように良いことは、あなたものJTextFieldまたはあなただけ使用することができます任意のコンポーネントをリセットしたい考えてみます。

private void clearAllFields() { 

    for (Component C : myPanel.getComponents()) { 
     if (C instanceof JButton || C instanceof JTextField) { 
      ((JTextField) C).setText(""); 
      ... 
     } 

     if (C instanceof JButton) { 
      ((JButton) C).setText(""); 
      ((JButton) C).setEnabled(true); 
      ... 
     } 

     if (C instanceof JRadioButton) { 
      ((JRadioButton) C).setSelected(false); 
      ... 
     } 

     if (C instanceof JDateChooser) { 
      ((JDateChooser) C).setDate(null); 
      .... 
     } 
    } 
} 
関連する問題