如何使用JCheckBoxes选择?

raz*_*han 3 java swing jbutton jcheckbox

我在JFrame上有一个复选框.当我检查它时,我想在命令窗口中显示它已被选中.以下是我正在使用的代码.它编译并执行没有错误,但是当我选中复选框时,我没有在窗口中看到"已经选择了一个".

 public Checklist() {

    ...

    JCheckBox one = new JCheckBox("CT scan performed");
    one.addItemListener(new CheckBoxListener());

    }
        private class CheckBoxListener implements ItemListener{
        public void itemStateChanged(ItemEvent e)
        {
        if(e.getSource()==one){ if(one.isSelected()){
        System.out.println("one has been selected");
            }
            else{System.out.println("nothing");}
            }
     }}
Run Code Online (Sandbox Code Playgroud)

oli*_*sle 5

我已经测试了这个简单的例子并且它完美地工作("one has been selected"当你选择复选框时,"nothing"它会在你取消选择时写入):

import javax.swing.*;
import java.awt.event.*;

public class Example extends JFrame{
    public JCheckBox one;

    public Example() {
        one = new JCheckBox("CT scan performed");
        one.addItemListener(new CheckBoxListener());
        setSize(300,300);
        getContentPane().add(one);
        setVisible(true);
    }

    private class CheckBoxListener implements ItemListener{
        public void itemStateChanged(ItemEvent e) {
            if(e.getSource()==one){
                if(one.isSelected()) {
                    System.out.println("one has been selected");
                } else {System.out.println("nothing");}
            }
        }
    }

    public static void main(String[] args) {
        new Example();
    }
}
Run Code Online (Sandbox Code Playgroud)

在您的示例中,它似乎one在构造函数中声明CheckList().你确定它可以在内部类中访问CheckBoxListener吗?