我正在尝试切换我的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");
}
}
} 发布于 2013-05-20 14:45:27
如果选中第一个复选框,则在您选中第二个复选框时将同时选中这两个复选框。这意味着将满足第一个if-condition,这样第二个复选框将立即取消选中。
因此,您应该使用ItemEvent e来查看您刚刚选择了哪个复选框,而不是检查选中了哪些复选框。
if(e.getStateChange() == ItemEvent.SELECTED) {
if(e.getItem() == jcb1) {
jcb2.setSelected(false);
} else {
jcb1.setSelected(false);
}
}https://stackoverflow.com/questions/16643754
复制相似问题