11.5事件处理
11.5.1 java事件处理流程
在事件处理的过程中,主要涉及3类对象;
1.Event Source (事件源):事件发生的场所,通常就是各个组件.
2.Event (事件):事件封闭了GUI组件上发生的特定事情,通常就是用户对组件的一次操作.
3.Event Listener (事件监听器):负责监听事件源所发生的事件,并对各种事件做出响应处理.
使用示例:
import java.awt.*;
import java.awt.event.*;
public class EventQs
{
private Frame f = new Frame("测试事件");
private Button ok = new Button("确定");
private TextField tf = new TextField(30);
public void init()
{
//注册事件监听器
ok.addActionListener(new OkListener()); //OK按钮的监听类OkListener
f.add(tf);
f.add(ok , BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
//定义事件监听器类
class OkListener implements ActionListener
{
//下面定义的方法就是事件处理器,用于响应特定的事件
public void actionPerformed(ActionEvent e)
{
System.out.println("用户单击了ok按钮");
tf.setText("Hello World");
}
}
public static void main(String[] args)
{
new EventQs().init();
}
}
11.5.2事件和事件监听器
AWT事件分为低级事件和高级事件.
低级事件
低级事件指基于特定动作的事件.如,鼠标的进入、点击拖放等动作。
1.ComponentEvent:组件事件,当组件尺寸、位置、显示、隐藏、发生变化时的事件。
2.ContainerEvent:容器事件,当容器发添加组件,删除组件时的事件。
3.WindowEvent:窗口事件,当窗口状态发生变化时的事件。
4.FocusEvent:焦点事件,当组件得到和失去焦点时的事件。
5.KeyEvent:键盘事件,当键盘按下、松开、单击的事件。
6.MouseEvent:鼠标事件,当鼠标按下、松开、单击、移动的事件。
7.PaintEvent:组件绘制事件。
高级事件
1.ActionEvent:动作事件,当按钮、菜单被点击,文本框中按回车。
2.AdjustmentEvent:调节带伤,在滑动条上移动滑块时触发。
3.ItemEvent:选项事件,当用户选中某项和取消某项时触发。
4.TestEvent:文本事件,当文本框里文本发生变化时触发。
11.5.3 事件适配器
事件适配器实现了监听器接口,并为该接口里的每个方法都提供了实现。
如果监听器接口只有一个方法,该监听器接口就无须提供适配器,如果监听器接口有多个方法,该监听器接口都应该有事件适配器。
给出窗口适配器使用示例:
import java.awt.*;
import java.awt.event.*;
public class TestWindowAdapter
{
private Frame f = new Frame("测试");
private TextArea ta = new TextArea(6 , 40);
public void init()
{
f.addWindowListener(new MyListener());
f.add(ta);
f.pack();
f.setVisible(true);
}
class MyListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
ta.append("用户试图关闭窗口!\n");
System.exit(0);
}
}
public static void main(String[] args)
{
new TestWindowAdapter().init();
}
}