JCheckBox 总是返回 True/False 但不改变

JCheckBox Always Returning True/False But Not Changing

我目前面临的问题是,我可以在屏幕上添加一个复选框,当我点击它时,它会根据需要在状态之间切换,但是当涉及到使用选择数据来做事时,它总是 return s 原始值无论是真还是假;

我的第一段代码只是使用了 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 的下方实现一个项目侦听器,但它仍然继续 return 初始值集。

SVelRand.addItemListener(new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            System.out.println(SVelRand.isSelected());
          }
        });

我还在将 Label 和 JTextField 绘制到同一个面板,然后再将其添加到具有任何轴承的框架柜中。我使用 setBounds 而不是布局的原因是我可以将每个组件添加到精确位置以实现非标准布局。

任何帮助将不胜感激;

在您的动作侦听器函数中,只需跟踪一个(class 范围)布尔值

// way up above everything
public boolean toggleState=false;

// then later
SVelRand.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
  this.toggleState=(!this.toggleState);
  String message=(this.toggleState) ? "checked" : "unchecked";
  System.out.println("Checkbox is "+message);
}
});

如果您在默认情况下启动复选框,只需将 toggleState 的初始值更改为 true