复选框侦听器错误

时间:2014-04-04 01:10:02

标签: java swing jcheckbox itemlistener

当我检查选择或取消选择Checkbox时,功能isSelected()不起作用。

我有这个错误:the method isSelected() is undefined for the type Checkbox,我不知道为什么。

您能解释一下问题所在,或者告诉我是否有其他解决方案来检查我的Checkbox是否被选中?

代码:

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();
    }
}

1 个答案:

答案 0 :(得分:3)

您的代码会为我编译,因此其他地方可能会出错。不过,我自己会使用ItemEvent状态。例如:

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

修改
你的错误真的是"the method isSelected() is undefined for the type Checkbox"吗?如果是,您是将one声明为CheckBox变量还是JCheckBox变量?或者您是否有另一个名为Checkbox的班级(请注意小写b)?