我有几个组件,所有组件都继承 JCheckBox 而不覆盖它的任何内容,存储在一个向量中,然后遍历该向量并将每个组件添加到一个对话框中
CreateLists(); // initialises the checkbox vector
for(int i = 0; i < checkBoxes.size() ; i++){
myPanel.add(checkBoxes.elementAt(i));
}
其中一些复选框已被选中。
我现在的问题是:当我打开对话框并选择或取消选择任何复选框时,向量中复选框的值不会改变。选定的保持选定状态,未选定的保持未选定状态。
我也尝试使用 JPanels getCompoents() 来获取新值,但这些值也是错误的。
复选框继承者中的 ItemListener 确认确实发生了更改,但是每当我尝试获取新值时,与初始化复选框的值相同。
这是我用来跟踪更改的控制台输出:
create lists
print values:
checkBox1 = true
checkBox2 = true
checkBox3 = false
checkBox2 clicked new value = false
checkBox3 clicked new value = true
print values:
checkBox1 = true
checkBox2 = true
checkBox3 = false