public void init()
   {
       Button btn=new Button("退出");
       btn.addActionListener(new ActionListener()
       {
           public void actionPerformed(ActionEvent e)
           {
              f.setVisible(false);
              f.dispose();
              System.exit(0);
           }
       
              
       });
请问一下,,,new ActionListener()这个应该是接口。。接口不能实例化对象。。这是怎么回事呢???

解决方案 »

  1.   

    楼主看看api!这里用了装饰者模式哦!
      

  2.   

    是不是相当于这个:
    public class a implement ActionListener
    {
       public void actionPerformed(ActionEvent e) 
              { 
                  f.setVisible(false); 
                  f.dispose(); 
                  System.exit(0); 
              } }ActionListener obj = new a();
    btn.addActionListener(obj);
      

  3.   

    基本用法而已。给你举个例子public interface IProject {
        public void haha() ;
    }public class test {
    public void xixi (IProject project) {
    project.haha();
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
    test t = new test();
    t.xixi(new IProject(){ @Override
    public void haha() {
    System.out.println("测试一下");
    }

    });

    }}
      

  4.   

    匿名内部类,实际相当于建立了一个实现了该接口的类,并直接创建对象了,只是java提供了这样的语法简化了实现方法。
      

  5.   

    在这种情况下。。也许就是这个意思:ActionListener obj = new a();
                                  btn.addActionListener(obj);对吧??
      

  6.   


    a类implements ActionListener即可