我不知道如何问这个问题。我正在编写的程序已完成,但似乎代码过多。这是部分代码:
chkDef1 = new JCheckBox
if (chkDef1.isSelected()) {
actual = chkDef1.getText();
}
else if (chkDef2.isSelected()) {
actual = chkDef2.getText();
}
else if (chkDef3.isSelected()) {
actual = chkDef3.getText();
}
else {
actual = chkDef4.getText();
}
还有其他区域存在大量带有 chkDef1 - 4 复选框的重复代码。我想做的是在代码重复的区域使用循环,然后只使用 1 个赋值语句。
我已经尝试过: if(('chkDef' + counter).isSelected())
我还尝试将“'chkDef' + counter”分配给字符串变量,然后添加 isSelected。不幸的是我不断收到错误消息。
我是一名新手程序员,所以我不知道我想做的事情是否可能或它叫什么。如果可能的话,我们将不胜感激。
最佳答案
只需创建一个复选框
列表并对其进行迭代即可。
ArrayList<JCheckBox> checkboxes = new ArrayList<JCheckBox>();
//Init your checkboxes array.
for(JCheckbox chkbox :checkboxes)
{
if(chkbox.isSelected())
{
actual = chkbox.getText() ; break;
}
}
尽管如此,可能有一个 JCheckbox 组可以执行您想要的操作。
关于java - 您可以动态创建对 JCheckBox 对象的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13595677/