java - 如何检查 JFrame 中选中了哪些复选框?

标签 java swing jframe jcheckbox

我在 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/

相关文章:

java - 新的 Google App Engine 数据存储 API 似乎没有抛出那么多异常?

java - 使用 session 序列化处理 Vaadin 中不可序列化的 Guava EventBus

java - 带有Mybatis-Generator-Maven-Plugin的Maven项目,嵌套模块依赖问题

java - JSlider 在 10 秒后隐藏,就像在电视机中一样

java - 为什么我在 Swing 的 JButton 中的 html 代码偏离中心?

java - 双击时,圆圈需要消失

java - 使用 clean() 方法在我的 build.gradle 中出错

java - 是否可以使基于 Swing 的应用程序独立于屏幕分辨率

Java JPanel 不可见

java - 没有视觉出现