复选框的监听器不适用于按钮

时间:2015-03-19 16:43:03

标签: java jcheckbox

(我不是母语为英语的人,但我会尽我所能)

嗨,我的jcheckbox有问题,我使用此代码创建了这个

try (ResultSet rs = st.executeQuery("SELECT * FROM cuentas ")) {
                while (rs.next()) {
                    cmb[i] = new javax.swing.JCheckBox();
                    cmb[i].setLabel(rs.getObject("cuentascol").toString());
                    jPanel15.add(cmb[i]);
                    cmb[i].setBounds(20, 20 + (i * 20), 160 + (i * 20), 23 + (i * 20));
                    cmb[i].addItemListener(new ItemListener() {
                        @Override
                        public void itemStateChanged(ItemEvent evt) {
                            JCheckBox cb = (JCheckBox)evt.getItem();
                        }
                    });
                    i = i + 1;
                }
            }

我找到了如何添加一个监听器,但是监听器只有在选中按钮时才能工作,单击它们,我需要检查是否选中了这个,但是当我按下按钮时,按钮会取一个数字从这个

int comboNum=1;
                    for(int pp=0;pp<total_checkbox;pp++){

                        comboNum=comboNum+1;
                    }

在此按钮中我需要检查是否已选中jcheckbox

1 个答案:

答案 0 :(得分:1)

因为您要创建ItemListener并覆盖itemStateChanged方法。

文档指定

  

当用户选择或取消选择某个项目时调用。

这解释了为什么只需点击即可调用它。

您可能希望改用ChangeListener并覆盖方法stateChanged

  

当侦听器的目标已更改其状态时调用。

检查this sample如何检测不同的事件,如按,选择等。

相关问题