Java 对JSwing组件使用ArrayList

Java 对JSwing组件使用ArrayList,java,arraylist,checkbox,Java,Arraylist,Checkbox,我的代码运行了很长时间,基本上每个组件都使用不同的索引,因此我决定将它们全部放在所需类型的ArrayList中。 我的代码应该根据选中的复选框启用/禁用JSpinner 我编了一个这样的代码: private static void updateGUI(int index){ boolean enabl = checkBoxes.get(index).isEnabled(); System.out.println(enabl); spinners.get(index).

我的代码运行了很长时间,基本上每个组件都使用不同的索引,因此我决定将它们全部放在所需类型的ArrayList中。
我的代码应该根据选中的复选框启用/禁用JSpinner

我编了一个这样的代码:

private static void updateGUI(int index){

    boolean enabl = checkBoxes.get(index).isEnabled();
    System.out.println(enabl);
    spinners.get(index).setEnabled(enabl);  
//more irrelevant stuff done here
}
因此,我只给出used复选框的索引,它应该相应地更新JSpinner。我放置了一行来输出复选框的当前值,当它触发函数时,但它总是输出
true


所有复选框都正确地放置在ArrayList中,我找不到错误。感谢您的帮助

我想你的问题是另一种性质的

如果您想知道是否选中了复选框,您应该拨打 而不是ISENABLE


或者,您也可以使用,在复选框(取消)选中时收到通知

isEnabled()
函数不会说明是否选中了复选框。它表示复选框是否处于活动状态。尝试
isSelected()
方法。

似乎是一种可行的方法。怎么了?你到底在问什么?你可能应该使用
isSelected
而不是
isEnabled
。阅读文档。我看到您使用了
boolean enabl=checkbox.get(index.isEnabled(),如果此复选框已启用,而未选中属性,则始终为真
私有静态无效更新GUI(int index)
Ummm。。。您是否将微调器/复选框存储在静态数组中?真正地那么当支撑他们的窗户被摧毁时会发生什么呢?@Adriancolomychi Eyy。。。恨我;我知道。。。我必须承认,我对java的静态/非静态方面的研究还不太深入(在学校之前,我一直使用Pascal),现在我通常使用静态类/函数在其他类中导出代码,以获得更好的可读性。