1

我试图切换我的 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");
        }
    }
}    
4

1 回答 1

4

如果选择了第一个复选框,则在您选择第二个复选框时它们都将被选中。这意味着if将满足第一个条件,因此将立即取消选中第二个复选框。

ItemEvent e因此,您应该使用来查看您刚刚选择了哪个复选框,而不是检查哪些复选框被选中。

if(e.getStateChange() == ItemEvent.SELECTED) {
    if(e.getItem() == jcb1) {
        jcb2.setSelected(false);
    } else {
        jcb1.setSelected(false);
    }
}
于 2013-05-20T06:45:26.593 回答