【发布时间】:2015-11-27 16:07:34
【问题描述】:
我有大约 50 个复选框,下面是 3 个的示例代码。
JCheckBox checkboxOne = new JCheckBox("One");
JCheckBox checkboxTwo = new JCheckBox("Two");
JCheckBox checkboxThree = new JCheckBox("Three");
// add these check boxes to the container...
// add an action listener
ActionListener actionListener = new ActionHandler();
checkboxOne.addActionListener(actionListener);
checkboxTwo.addActionListener(actionListener);
checkboxThree.addActionListener(actionListener);
// code of the action listener class
class ActionHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
JCheckBox checkbox = (JCheckBox) event.getSource();
if (checkbox == checkboxOne) {
System.out.println("Checkbox #1 is clicked");
} else if (checkbox == checkboxTwo) {
System.out.println("Checkbox #2 is clicked");
} else if (checkbox == checkboxThree) {
System.out.println("Checkbox #3 is clicked");
}
}
}
在这里,我想遍历 50 个复选框,例如创建可用复选框的 ArrayList 并循环它们以检查哪个被选中。我无法理解如何创建复选框的 ArrayList。
我提到了Array of checkboxes in java,但我无法理解如何使用它?
请告诉我如何做到这一点。
【问题讨论】:
-
您在链接到的答案中到底有什么不明白的?如果你成功创建了数组列表,你可以简单地做这样的事情来查看哪些被检查:
for (JCheckBox cb : checkBoxes) {if (cb.isSelected()) {// What to do if it is selected}} -
嗨@LuxxMiner,我已经试过了,我用过
for (JCheckBox cb : checkboxes) {if (cb.isSelected()) {System.out.println("selected");} else {System.out.println("no");}},但是我的控制台打印了三个no,虽然我已经检查过然后点击按钮 -
您已经修改了您的代码,并在此基础上提出了一个新问题。这不是你应该做的。如果您有新问题,请提出新问题。编辑的重点是细化或显示问题的进度。现在,搜索与您相同的原始问题的用户会发现一个无意义的答案。 我对你的新问题有了答案。请作为一个新的发布并将这个回滚到它的原始范围