我在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>
最佳答案
在这种情况下,也许您的复选框位于另一个容器(如JPanel)中,则应在容器组件上调用getcomponents,否则您可以创建一个方法,当在jframe中找到另一个容器组件时递归调用此方法,以便遍历所有层次结构。 。