java快速查看是否未选中所有复选框的方法
我有一个带有16个JCheckbox的java JPanel,我希望确保用户在提交表单之前至少选择一个。我知道的唯一方法是使用一个庞大的if语句来查看“isSelected()”方法的布尔值,但这似乎效率低下。 所以我想知道是否有一种更快的方法来检查是否所有的框都未检查
你可以在下面搜索框中键入要查询的问题!
我有一个带有16个JCheckbox的java JPanel,我希望确保用户在提交表单之前至少选择一个。我知道的唯一方法是使用一个庞大的if语句来查看“isSelected()”方法的布尔值,但这似乎效率低下。 所以我想知道是否有一种更快的方法来检查是否所有的框都未检查
# 1 楼答案
我相信这会达到目的:
该方法接收一个JPanel并获取其上的所有组件。然后选中所有选项,如果是复选框,则将组件强制转换为复选框,以访问
isSelected
方法。如果选中任何复选框,它将返回true;如果完成foreach
而不返回任何true,则表示未选中任何复选框# 2 楼答案
您不需要
if
语句。可以使用||
使用一个大的逻辑表达式:或者,如果盒子在一个数组中(更可取),则循环:
或者,您可以使用附加到每个} 来跟踪复选框的计数:
JCheckBox
的^{(请注意,如果这就是
ItemListener
所做的全部工作,那么可以将一个实例附加到所有框。)应将selectionCount
初始化为最初选中的框数。然后在代码中的适当点,您可以简单地测试selectionCount
是否大于零