我对Java很陌生,并且在UI上有一些问题循环通过JCheckBoxes。这个想法是,我有一堆复选框(不在一个组中,因为可以选择多个复选框。)当我单击一个JButton时,我想创建一个包含每个选中复选框的文本的字符串。我遇到的问题是,我们的教师告诉我们,复选框需要通过方法创建,这意味着(请参阅下面的代码)没有每个复选框的离散实例名称。如果有的话,我可以说像如何获取所有JCheckBox对象的句柄以便循环?
if(checkBox1.isSelected()) {
myString.append(checkBox.getText());
}
这将重复checkBox2,checkBox3,等等。但是,提供给我们添加复选框到面板的方法是这样的:
public class CheckBoxPanel extends JPanel {
private static final long serialVersionUID = 1L;
public CheckBoxPanel(String title, String... options) {
setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), title));
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
// make one checkbox for each option
for (String option : options) {
JCheckBox b = new JCheckBox(option);
b.setActionCommand(option);
add(b);
}
}
}
这被称为是这样的:
toppingPanel = new CheckBoxPanel("Each Topping $1.50", "Tomato", "Green Pepper",
"Black Olives", "Mushrooms", "Extra Cheese",
"Pepperoni", "Sausage");
所以我现在有一个包含边框与标题面板“每个Topping $ 1.50“和7个可见复选框。我需要做的是获得所有选定浇头的清单。我们不应该为每个复选框使用ActionListener,而是在单击按钮时获取列表。我在这里感觉真的很无能,但当单个复选框没有实例名称时,我无法弄清楚如何获得复选框的isSelected属性。
理想情况下,我想以某种方式将所有复选框添加到数组中,并循环通过按钮的动作侦听器中的数组来确定哪些被选中,但是如果我必须单独检查每一个,我会。我无法弄清楚如何在动态创建个别复选框时引用它。
@ALL responders - 我只能选择一个答案来标记已接受,但所有这些答案都有帮助。谢谢! – EmmyS 2010-05-23 01:09:09