/*
时间:2015年3月18日09:46:25
测试简单的事件处理机制。
ActionListener接口的声明如下:
public interface ActionListener extends EventLister
用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类
可以实现此接口,而使用该类的对象可以使用组件的addActionListener
方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed方法。
在Window类中有一个方法pack,它的声明如下:
public void pack();
调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和或其所有者
还不可显示,则在计算首选大小之前都将变得可显示。在计算首选大小之后,将
会验证该窗口。
ActionEvent声明如下:
public class ActionEvent extends AWTEvent
指示了发生了组件定义的动作的语义事件。当特定于组件的动作(比如被按下)
发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象
是使用组件的addActionListener方法注册的,用以接收这类事件。
实现 ActionListener 接口的对象在发生事件时获取此 ActionEvent。因此,侦听器不必处理个别鼠标移动和鼠标单击的细节,
而是可以处理像“按下按钮”这样的“有意义”(语义)事件。
*/
import java.awt.*;
import java.awt.event.*;
public class TestActionEvent {
public static void main(String[] args) {
Frame f = new Frame("TestActionEvent");
Button b = new Button("Press me");
Monitor bm = new Monitor();
/*
添加的指定的动作侦听器,以接收发自此按钮的动作事件。当用户在此按钮上按下或者释放
鼠标时,发生动作事件。如果l为null,则不抛出任何异常,也不执行任何动作。
*/
b.addActionListener(bm);
f.setLocation(300, 200);
f.setSize(500, 500);
f.setBackground(Color.CYAN);
f.add(b, BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
}
class Monitor implements ActionListener {
/*
发生操作时调用
*/
public void actionPerformed(ActionEvent e) {
System.out.println("An button is pressed!");
}
}