刚学习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处理已完成。
-------------------------------------------------------------
有空的帮忙看下,谢谢先...
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处理已完成。
-------------------------------------------------------------
有空的帮忙看下,谢谢先...
你的问题应该是名字不对,改一下大小写就可以了
正解,因为你把itemStateChanged()写错了,系统会认为你没有override这个方法,所以提示你override这个方法