麻烦看下,是不是我理解的过程出错了:
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 {