java JCheckBox始终返回True/False,但不更改
我现在面临一个问题,我可以在屏幕上添加一个复选框,当点击它时,它会根据需要在不同的状态之间切换,但是当涉及到使用选择数据做事情时,它总是返回原始值,无论是真是假
我的第一段代码只是使用isSelected();if语句中的方法,该语句在每次勾选时持续运行。SVelRand是我使用以下方法创建的复选框:
SVelRand = new JCheckBox("Random", true);
SVelRand.setBounds(50, 30, 90, 20);
那么检查代码如下:
boolean sel = SVelRand.isSelected();
if(sel){
System.out.print("Selected");
}else{
System.out.print("Not Selected");
}
当我发现这不起作用时,我尝试在我创建jcheckbox的下面实现一个项目监听器,但它仍然继续返回初始值集
SVelRand.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
System.out.println(SVelRand.isSelected());
}
});
我还在同一个面板上绘制一个标签和JTextField,然后将其添加到具有任何方向的框架中。我之所以使用设置边界而不是布局,是因为我可以将每个组件添加到精确的位置,以实现非标准布局
任何帮助都将不胜感激
# 1 楼答案
在动作侦听器函数中,只需跟踪(类范围)布尔值
如果在默认情况下选中复选框,只需将toggleState的初始值更改为true