1

我在 JFrame 中添加了大约 10 个复选框,这些复选框被添加到 for 循环中,并在 Array 上进行迭代,代码如下所示

    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 时,我是否必须像这样访问每个 CheckBox
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 个 if、else 或 switch 条件,这将是太重的代码,我已经做到了,我想要像迭代循环或一些类似的解决方案来获得选择项目本身而不是去 b 1, b 2

你可以

于 2012-10-20T19:28:36.567 回答