【问题标题】:Usage of ArrayLists for JSwing componentsJSwing 组件中 ArrayLists 的使用
【发布时间】: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),我现在通常使用静态类/函数来导出其他类中的代码为了更好的可读性。

标签: java arraylist checkbox


【解决方案1】:

我猜你的问题性质不同。

如果你想知道一个复选框是否被选中,你应该打电话 isSelected 而不是 isEnabled

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

【讨论】:

    【解决方案2】:

    isEnabled() 函数没有说明复选框是否被选中。它表示复选框是否处于活动状态。试试isSelected() 方法。

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 1970-01-01
      • 2014-05-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多