限制所选复选框的数量

时间:2012-10-18 14:35:37

标签: java swing user-interface checkbox jcheckbox

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

我对Java很新 - 所以请原谅我的无知。 我只需要了解何处/如何开始。

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

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

当然,在添加值之前,请先检查该值是否小于5(0 - 4),然后才能检查另一个。

答案 2 :(得分:1)

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

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

增加/减少复选框数量的全局计数似乎更有效,但在处理UI时,增益可以忽略不计。我会说最好采取防御措施来避免角落案件和漏洞试图跟踪状态信息,而不仅仅是轮询它。

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