public void init() { 
 ActionListener al = new ActionListener() { 
        public void actionPerformed(ActionEvent e){ 
           String name = 
               ((JButton)e.getSource()).getText(); 
           t.setText(name + " Pressed"); 
        } 
    }; 
    b1.addActionListener(al); 
    add(b1); 
    b2.addActionListener(al); 
    add(b2); 
    add(t); 
 } 
RT,新建了ActionListener对象后,为什么在后面更了一个方法,还用{}括起来了?

解决方案 »

  1.   

    匿名类啦
    就是一个继承或实现了ActionListener的无名称的类
      

  2.   

    ActionListener 是个接口,他有一个方法,actionPerformed()这种new ActionListener()  直接new 一个接口,并在后面实现他的方法的方式就是我们说的 匿名类
      

  3.   

    这个是匿名类 可以参照我在这个帖子7楼的回复http://topic.csdn.net/u/20110919/16/b185f8cd-c9a4-4f46-8ae1-537ca3a2abef.html
      

  4.   

    接口是没有办法new的
    Interface i=new Interface(){};大括号里要写Interface未实现的方法
    new Interface(){};相当于是Interface的子实现,但是没有名字,因此叫匿名类
    new Interface(){};因为继承了Interface,Interface的引用可以指向它