切换JCheckBox值

时间:2013-05-20 06:27:05

标签: java swing user-interface jcheckbox itemlistener

我试图切换我的jcheckbox。我已将默认设置为检查jcb2。我的jcb1工作正常,但我的jcb2似乎无法切换。我添加了一个println,发现它被打印但我的jcb2没有得到检查。

class CheckBoxHandler implements ItemListener
{
    public void itemStateChanged(ItemEvent e)
    {

        if(jcb1.isSelected()) 
        {
            jcb1.setSelected(true);
            jcb2.setSelected(false);
        }
        if(jcb2.isSelected()) 
        {
            jcb1.setSelected(false);
            jcb2.setSelected(true);
            System.out.println("1");
        }
    }
}    

1 个答案:

答案 0 :(得分:4)

如果选中了第一个复选框,则在您选择第二个复选框时将同时选中它们。这意味着将满足第一个if条件,这样就可以立即取消选中第二个复选框。

因此,您应该使用ItemEvent e查看刚刚选中的复选框,而不是选中选中的复选框。

if(e.getStateChange() == ItemEvent.SELECTED) {
    if(e.getItem() == jcb1) {
        jcb2.setSelected(false);
    } else {
        jcb1.setSelected(false);
    }
}