0

一連の JCheckBox インスタンスがあり、.setSelected(false) を使用してそれらの状態をチェック解除にリセットしたいのですが、これを行う方法がわかりません。以下のようなものだと思いましたが、コンパイルされませんでした。

ArrayList<JCheckBox> checkboxList; //initialized in this manner earlier in code


    public class MyResetListener implements ActionListener {
    public void actionPerformed(ActionEvent a){
         for(JCheckBox a : checkboxList){
             checkboxList.setSelected(false);
         }
    }
}

通常の for ループでもこれを試しましたが、どちらの方法でも ArrayList にアクセスする方法がわかりませんでした。

    public class MyResetListener implements ActionListener {
    public void actionPerformed(ActionEvent a){
         for(int i=0; i<256; i++){
             checkboxList[i].setSelected(false);
         }
    }
}
4

3 に答える 3

3

次のようにする必要があります。

for(JCheckBox b: checkboxList)
    b.setSelected(false);

ここで既に定義されているように名前を変更aしました - 。baActionEvent a

bcheckboxListは、反復処理中にコレクションから取得する変数であるため、全体である の代わりにそれを使用する必要がありますArrayList

または:

for(int i = 0; i < checkboxList.size(); i++)
   checkboxList.get(i).setSelected(false);

Java クラス (つまりArrayList) は操作をネイティブにサポートしていません[](ただし、拡張機能を取得し、配列も技術的にはクラスであり、サポートしています)。そこから要素を取得ArrayListするgetメソッドがあります。

于 2013-06-02T22:50:07.710 に答える
1

配列添字を使用する代わりに、次のようなメソッドを使用する必要がありますget()

例えば

checkboxList.get(i).setSelected(false);
于 2013-06-02T22:49:55.757 に答える
0

ArrayList 内の要素へのアクセスが正しければ、get メソッドを使用できます。

あなたの例は次のようになります:

     for(int i=0; i<256; i++){
         checkboxList.get(i).setSelected(false);
     }
于 2013-06-02T22:51:13.387 に答える