import java.awt.*; import java.awt.event.*; class TestCheckbox { Checkbox cb1=new Checkbox("Do you like?",true); CheckboxGroup cbg=new CheckboxGroup(); Checkbox cb2=new Checkbox("Like!",cbg,true); Checkbox cb3=new Checkbox("Don't!",cbg,false); public void init(){ /////////////////////////////这个类为什么放到init()方法中时,编译会出错,找不到符号:类A class A implements ItemListener{ public void itemStateChanged(ItemEvent e){ Checkbox cb=(Checkbox)e.getItemSelectable(); if(cb.getLabel().equals("Do you like?")){ if(cb.getState()==true) System.out.println("I m happy!"); else System.out.println("I m sad!"); } else{ Checkbox cbx=cbg.getSelectedCheckbox(); if(cbx!=null) System.out.println(cbx.getLabel()); } } } /////////////////////////////在方法体内定义的内部类,只能在方法体内被实例化。并且实例化的代码要在内部类定义代码之后,不然编译出错,找不到符号。 Frame f=new Frame("多选按钮和单选按钮"); FlowLayout f1=new FlowLayout(); f.setLayout(f1); f.add(cb1); f.add(cb2); f.add(cb3); cb1.addItemListener(new A()); cb2.addItemListener(new A()); cb3.addItemListener(new A()); f.setBounds(0,0,300,100); f.setVisible(true); f.addWindowListener(/**/new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);} }/**/); } public static void main(String [] args){ new TestCheckbox().init(); } }