我在 JForm(SubComponents) 中有几个复选框,我正在使用这段代码来检查哪些被选中:
countItems = 0;
for(Component jb: this.getComponents())
{
if((jb instanceof JCheckBox) ) //I never get pass this point(its always false)
{
JCheckBox chbox = (JCheckBox)jb;
if(chbox.isSelected())
countItems++;
}
}
有人知道问题出在哪里吗?
谢谢
编辑:这是 xml:
<Form version="" maxVersion"" type="">
<AuxValues>
</AuxValues>
<Layout>
</Layout>
<SubComponents>
<Component class="javax.swing.JCheckBox" name="jCheckBox1">
<Properties>
<Property name="text" type="java.lang.String" value="Cheese"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox2">
<Properties>
<Property name="text" type="java.lang.String" value="Sausage"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox3">
<Properties>
<Property name="text" type="java.lang.String" value="Pepperoni"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox4">
<Properties>
<Property name="text" type="java.lang.String" value="Mushroom"/>
</Properties>
</Component>
</SubComponents>
</Form>
最佳答案
“这个”是什么? JFrame?如果是这样,您就会明白,您将通过该搜索获得的直接位于 JFrame 上的唯一组件是 contentPane,并且您的 JCheckBoxes 在组件层次结构中的位置可能比您正在查找的位置更深。
为什么不让自己更轻松一些,将 JCheckBoxes 放在一个集合中,例如 ArrayList。或者,如果数量很少,则使用它们的变量名。
关于java - 如何检查 JFrame 中选中了哪些复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9087413/