日期:2014-05-20  浏览次数:20613 次

【新手问题】awt事件监听器的问题
麻烦看下,是不是我理解的过程出错了:
1.Main语句下的代码运行完毕,button的actionlistener注册成功。
2.Main语句结束,等待是否有组件的事件触发
3.button的action事件触发,疑惑的地方是:如果注册的是new TestFrame3()而不是this,为什么这个frame就不是第一个TestFrame3的,能否告诉我内存的存储情况是怎么样的?
谢谢!



Java code

import java.awt.*;
import java.awt.event.*;
class TestFrame3 extends WindowAdapter implements ActionListener
{
    Frame f=new Frame();
    public static void main(String[] args)
    {
        TestFrame3 tf=new TestFrame3();
        tf.Init();
    }    
    
    private void Init()
    {
        f.setVisible(true);
        f.setSize(300,399);
        f.add(bt);
        Button bt=new Button("Blizzard O");
        //bt.addActionListener(this);
        bt.addActionListener(new TestFrame3());
        f.addWindowListener(new TestFrame3());
        //f.addWindowListener(this);
    }
    
    public void actionPerformed(ActionEvent e)
    {
        f.dispose();    
    }
    
    public void windowClosing(WindowEvent e)
    {
        f.dispose();    
    }
}




------解决方案--------------------
Java code
public abstract class java.awt.event.WindowAdapter implements java.awt.event.WindowListener,java.awt.event.WindowStateListener,java.awt.event.WindowFocusListener {