使用这个接口是用了innerclass的方法,
this我也不清楚
不过我知道它的意思,是想得到按钮事件的来源
我觉得应该用e.getSource()啊

解决方案 »

  1.   

    那个是Java的内部类
    有些变量或类我们只用一次,可以用内部类来实现,不用专门去定义一个新变量,给一个新名字
    其实和定义一个新变量一样,不过这个类没有名字罢了
    相当于 public XXX = new ActionListener()
    或class XX extends ActionListener
    然后再使用XXX一样
    this应该指new ActionListener
      

  2.   

    btnButton.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e)
       {
           System.out.println("HelloWorld"); 
           this.getSource();
       }
    });
    是一个匿名内部类,
    就是没有名字的类,ActionListener是一个接口,说明有一个类实现了ActionListener接口,但他没有名字,后面大括号中是这个没有名字的类的方法.
    this应该指的是e.
      

  3.   

    this 应该指匿名内部类,同意 fyan888(风焰庄主)。
      

  4.   

    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;public class Test extends JFrame
    {
        public Test()
        {
            System.out.println("&& = " + this.getClass().toString());
            init();
        }
        
        private void init()
        {
            setSize(200, 100);
            setLocation(500, 400);
            Container pane = getContentPane();
            pane.setLayout(null);
            
            buttonOK = new JButton("OK");
            buttonOK.addActionListener(new ActionListener()
                    {
                 public void actionPerformed(ActionEvent e)
                 {
                     System.out.println("HelloWorld"); 
                     System.out.println(this.getClass().toString());
                     System.out.println(e.getSource().toString());
                 }
                    });
            
            buttonOK.setBounds(50, 30, 80, 20);
            pane.add(buttonOK);
        }
      
        public static void main(String[] args)
        {
            Test test = new Test();
            test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            test.show();
        }
        
        private JButton buttonOK;
    }估计是楼主写错了,JFrame类和ActionListener接口都没有getSource()方法;
    应该是e.getSource()
    运行一下上面的代码,就知道什么是什么了
    输出test$1指的就是匿名内部类,
    在actionPerformed()里的this指的就是它。
      

  5.   

    此匿名类相当于implements了一个ActionListener接口,
    因为其中的actionPerformed()方法要你自己来实现。