import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JFrame implements ItemListener
{
    JCheckBox jcb1=new JCheckBox("游泳");
    JCheckBox jcb2=new JCheckBox("上网");
    JCheckBox jcb3=new JCheckBox("看书");
    JPanel jp=new JPanel();
    public Test()
    {
     this.setTitle("创建单选按钮");
     jcb1.addItemListener(this);
     jcb2.addItemListener(this);
     jcb3.addItemListener(this);
     jp.add(jcb1);
     jp.add(jcb2);
     jp.add(jcb3);
     this.add(jp);
     this.setBounds(300,200,300,200);
     this.setVisible(true);
    }
    public void actionStateChanged(ItemEvent e)
    {
     System.out.println("选项发生了改变");
    }
    public static void main(String[] args)
    {
     Test t=new Test();
    }
}
这种程序有错吗?呵呵我用Eclipse怎么运行结果让我费解了?

解决方案 »

  1.   

    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    public class Test extends JFrame implements ItemListener 

        public void itemStateChanged(ItemEvent e) {
         System.out.println("选项发生了改变");

    }
    JCheckBox jcb1=new JCheckBox("游泳"); 
        JCheckBox jcb2=new JCheckBox("上网"); 
        JCheckBox jcb3=new JCheckBox("看书"); 
        JPanel jp=new JPanel(); 
        public Test() 
        { 
        this.setTitle("创建单选按钮"); 
        jcb1.addItemListener(this); 
        jcb2.addItemListener(this); 
        jcb3.addItemListener(this); 
        jp.add(jcb1); 
        jp.add(jcb2); 
        jp.add(jcb3); 
        this.add(jp); 
        this.setBounds(300,200,300,200); 
        this.setVisible(true); 
       
        } 
        public static void main(String[] args) 
        { 
        Test t=new Test(); 
        } 

    你没有实现ItemListener
      

  2.   

    3楼(一岁菜鸟)说的对。你必须实现接口ItemListener 的抽象方法
    public void itemStateChanged(ItemEvent e) 
    而你实现的是:public void actionStateChanged(ItemEvent e), 所以不工作。