类可以为private吗?我怎么记得只有默认和public。另外看报错的情况,可能import有问题。cast也有问题。

解决方案 »

  1.   

    import java.awt.*;
    import javax.swing.*;
    import javax.swing.event.*;import java.awt.event.*;public class A 
    {
      public static void main(String[] args)
      {
        CheckBoxFrame frame=new CheckBoxFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.show();
      }
    }
    class CheckBoxFrame extends  JFrame
    {
      public CheckBoxFrame()
      {
        setTitle("sshc625");
        setSize(WIDTH,HIGHT);
        
        Container contentPane=getContentPane();
        JPanel panel=new JPanel();
        
        bold=new JCheckBox("Bold");
       
        CheckBoxAction listener=new CheckBoxAction(); 
        
        bold.addActionListener(listener);
        panel.add(bold);
        
        italic=new JCheckBox("Italic");
        italic.addActionListener(listener);
        panel.add(italic);
        
        label=new JLabel("If I were a boy again!");
        label.setFont(new Font("Serif",Font.PLAIN,FONTSIZE));
        contentPane.add(label,BorderLayout.CENTER);
        
        contentPane.add(panel,BorderLayout.SOUTH);
        
       }
      public static final int WIDTH=400;
      public static final int HIGHT=200;
      
      private JCheckBox bold;
      private JCheckBox italic;
      private JLabel label;
      
      private static final int FONTSIZE=12;
      
     
     private class CheckBoxAction implements ActionListener //报错在这里!
      {
        public void actionPerformed(ActionEvent event)
        {
          int mode=0;
          if(bold.isSelected())
          mode+=Font.BOLD;
          if(italic.isSelected())
          mode+=Font.ITALIC;
        }
      }
    }
    抽象类可以有实例,但是不能直接实例化ActionListener,不能new ActionListener();
    局部变量在使用时要提前申明。
      

  2.   

    我倒,ActionListener是个接口,怎么能生成对象啊,狂晕
      

  3.   

    接口不可以实例化,正确的为对CheckBoxAction listener=new CheckBoxAction(); 
      

  4.   

    new AcionListener {
        ....
        ....
        ....
    }
    写在这里面就行了!
      

  5.   

    1、
    import java.awt.event.*;2、
    CheckBoxAction listener = new ActionListener();
    应为:
    CheckBoxAction listener = new CheckBoxAction();
    且放在构造方法第一行
      

  6.   

    kypfos(中国,怎么啦!) , lifeng1214(霹雳风) , hyhu(先飞笨鸟)  pxboy(阿土仔)都能解决你的问题。
      

  7.   

    内部类:
    1.如果内部类不是static的,则需要在包裹类的构造基础上来构造。
    2.如果是static的,则象平常一样构造就行了。至于上面的一大堆错误,应该还有其他的问题,可参看api。
      

  8.   

    内部类没有任何问题,主要就是一个语句
    CheckBoxAction listener=new ActionListener();
    你可以改写成ActionListenner listenner=new CheckBoxAction();
    而且位置要提前,在你要用到listenner之前实例化
      

  9.   

    CheckBoxAction listener=new CheckBoxAction();
      

  10.   

    内部类没有任何问题,主要就是一个语句
    CheckBoxAction listener=new ActionListener();
    你可以改写成ActionListenner listenner=new CheckBoxAction();
    而且位置要提前,在你要用到listenner之前实例化