1

JFrameに約10個のチェックボックスを追加しています。これらは配列で繰り返されるforループに追加され、コードは次のようになります。

    JFrame f=new JFrame("hello ");
    FlowLayout fl= new FlowLayout();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(300,300);
    f.setVisible(true);
    f.setLayout(fl);

    for (int i=0 ; i<10; i++)
    {

        b[i]=new JCheckBox();
        b[i].setVisible(true);
        b[i].addItemListener(this);
        f.add(b[i]);

    }  /// and so on . 

私の質問は、ItemListenerを実装するときに、次のように各チェックボックスにアクセスする必要がある
かどうかです。if(b [1] .isSelected())、if(b [2] .isSelected())、または他の手法を使用できます。ループかこのようなもの..よろしくお願いします

4

2 に答える 2

5

ItemListener、のインスタンスで呼び出されますItemEvent。このイベントにはソース(EventObject#getSource())があり、これがイベントをトリガーしたコンポーネントになります(例:あなたの)JCheckBox

于 2012-10-20T19:12:38.707 に答える
1

つまり、100個のjcheckBoxes Jbuttonsなどを使用する場合は100個になります。それ以外の場合は、コードが重すぎる条件を切り替えます。これを実行しました。ループを繰り返すなど、選択されたソリューションを取得する必要がありました。 b 1、b2などに行く代わりにアイテム自体

あなたはできる

于 2012-10-20T19:28:36.567 に答える