【发布时间】:2016-09-26 16:21:59
【问题描述】:
由于我的代码很长,只是使用不同的索引对每个组件做基本相同的操作,我决定将它们全部放在所需类型的 ArrayList 中。
我的代码应该根据 CheckBoxes 被检查来启用/禁用 JSpinners。
我编写了这样的代码:
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
}
所以我只给出已用复选框的索引,它应该相应地更新 JSpinner。我放置了一行来输出复选框的当前值,当它触发功能时,它总是输出true。
所有复选框都正确放置在 ArrayList 中,我找不到错误。任何帮助表示赞赏!
【问题讨论】:
-
似乎是一种可行的方法。怎么了?你到底在问什么?
-
您可能应该使用
isSelected而不是isEnabled。阅读文档。 -
我看到你使用
boolean enabl = checkBoxes.get(index).isEnabled();,如果启用此复选框,则始终为 true,而不是选中属性 -
private static void updateGUI(int index)嗯...您是否将微调器/复选框存储在静态数组中?真的??那么当支撑它们的窗口被破坏时会发生什么??? -
@AdrianColomitchi Eyy...讨厌我;我知道......我不得不承认,我对 java 的这种静态/非静态的东西还不是很了解(以前在学校里用过 Pascal),我现在通常使用静态类/函数来导出其他类中的代码为了更好的可读性。