0

我正在编写一个有多个项目可供测试的 Java 应用程序。但是——由于硬件限制,我只能并行测试 4 个设备。我想知道——总的来说——我怎样才能让 Java 将所选项目的数量限制为只有四个(无论选择哪个)?我正在阅读 Java 文档,但似乎找不到答案。

我对Java相当陌生——所以请原谅我的无知。我只需要一个关于从哪里/如何开始的线索。

如何限制 Java 中选中的复选框数量?

4

3 回答 3

5

如果您使用的是 Swing,请先创建一个 JCheckBox[] 数组并用复选框填充它。然后创建带有选中复选框数量的 ChangeListener 和全局变量。将此侦听器添加到所有复选框。在 ChangeListener 的stateChanged()方法中,将全局变量增加或减少 1。如果变量达到 4,则使用 setEnabled(false) 禁用所有复选框,除了选中的复选框。当您将变量从 4 减少到 3 时,请将它们设置为启用。

这是关于 ChangeListener 的好例子: http ://www.java2s.com/Code/Java/Event/CheckBoxItemListener.htm

于 2012-10-18T14:45:01.807 回答
3

我会创建一个全局变量来保存已启动设备的数量。

单击复选框时,在其事件处理程序中,如果已选中则添加到变量中,如果未选中则减去。

当然,在允许检查另一个值之前,您会在添加该值小于 5 (0 - 4) 之前进行检查。

于 2012-10-18T14:38:31.633 回答
1

跟踪所有复选框。在监听器的 stateChanged() 中添加对以下检查的调用:

  • 循环并查询所有复选框的状态并计算检查了多少。
  • 如果选中的复选框数量等于或大于 4,则再次循环所有复选框并禁用所有未选中的复选框。
  • 否则,如果复选框的数量少于 4 个,则启用所有复选框。

增加/减少复选框数量的全局计数似乎更有效,但在处理 UI 时增益可以忽略不计。我会说最好进行防御性编码,以避免极端情况和错误试图跟踪状态信息,而不是仅仅轮询它。

对于防御性编程,您还希望验证来自 UI 的输入以检查复选框的数量是否小于或等于 4。

于 2012-10-18T14:41:44.907 回答