[code=Java][/code]
package com.frameactiontest;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FrameActionTest implements ActionListener {
/**
* @param args
*/
Frame f = new Frame();
public static void main(String[] args) {
// TODO Auto-generated method stub
FrameActionTest fat = new FrameActionTest();
fat.init(); //调用init()方法.
}
public void init(){
Button bn =new Button("Confirm"); //new Button按钮对对象.
f.add(bn);
f.setSize(800, 600);
f.setVisible(true);
bn.addActionListener(this); //曾加监听器.
}
public void actionPerformed(ActionEvent e) { //重写 ActionListener的方法.
// TODO Auto-generated method stub
f.setVisible(false);
f.dispose();
}
}
我想问的是:
类“FrameActionTest” implements(实现了) 类“ActionListener” ,这里从main函数的执行代码顺序看,
重写 类“ActionListener”的“actionPerformed(ActionEvent e)”方法,
然后我疑问的是java怎么知道 先执行main函数的“init()”方法之后才执行重写的“actionPerformed(ActionEvent e)”方法,(因为我认为“actionPerformed(ActionEvent e)”方法是在main 函数中“new FrameActionTest()”的时候就执行了)
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
一楼正解,actionPerformed() 函数是在事件发生时被调用,而
init() 是初始化方法,刚创建好FrameActionTest对象时,就会被调用,所以才会是那个执行顺序,可以测试一下,打印店东西出来看看就知道顺序了