刚学习java,根据课本上的一段代码:
import java.awt.*;
import java.awt.event.*;
public class TestCheckbox
{
Checkbox cb1=new Checkbox("你喜欢我么?",true);
CheckboxGroup cbg=new CheckboxGroup();
Checkbox cb2=new Checkbox("喜欢",cbg,true);
Checkbox cb3=new Checkbox("不喜欢",cbg,false);
public void init()
{
Frame f=new Frame("TestCheckBox");
FlowLayout f1=new FlowLayout();
f.setLayout(f1);

f.add(cb1);
f.add(cb2);
f.add(cb3);
cb1.addItemListener(new CbItemListener());
cb2.addItemListener(new CbItemListener());
cb3.addItemListener(new CbItemListener());
f.setBounds(0,0,300,100);
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
class CbItemListener implements ItemListener
{
public void itemstateChanged(ItemEvent e)
{
Checkbox cb=(Checkbox)e.getItemSelectable();
if(cb.getLabel().equals("你喜欢我么?"))
{
if(cb.getState()==true)
System.out.println("我很高兴");
else
System.out.println("我很伤心");
}
else
{
Checkbox cbx=cbg.getSelectedCheckbox();
if(cbx!=null)
System.out.println(cbx.getLabel());
}
}
}
public static void main(String [] args)
{
new TestCheckbox().init();
}
}--------------------------------------------
编译结果是:
--------------------配置: <默认>--------------------
F:\GUI\TestCheckbox.java:32: TestCheckbox.CbItemListener is not abstract and does not override abstract method itemStateChanged(java.awt.event.ItemEvent) in java.awt.event.ItemListener
        class CbItemListener implements ItemListener
        ^
1 error处理已完成。
-------------------------------------------------------------
有空的帮忙看下,谢谢先...

解决方案 »

  1.   

    itemstateChanged这个方法要注意大小写,应该是itemStateChanged.
      

  2.   

    需要override itemStateChanged方法
    你的问题应该是名字不对,改一下大小写就可以了
      

  3.   

    先在design中丢一个ButtonGroup,把单选的对象,add一个ButtonGroup的对象中,就可以只选一个。
      

  4.   

    diggywang(Miner Lover!)
    正解,因为你把itemStateChanged()写错了,系统会认为你没有override这个方法,所以提示你override这个方法