3.1 Java事件处理流程
在之前介绍AWT窗口的时候,我们发现,点击关闭按钮并没有达到关闭的效果。换句话说,就是这些界面还不能响应用户的任何操作。
在事件处理的过程中,主要涉及三类对象:
•Event Source(事件源):事件发生的场所,这里通常是各个组件。
•Event(事件):事件封装了组件上发生的特定事情,而且也封装了所发生的事件的相关信息。
•Event Listener(事件监听器):负责监听事件源所发生的的事件,并作出相应的响应处理。
AWT事件处理流程示意图:
想要更多资料,可以加微信mageit私发!
举例:
package com.xx.awt03;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
-
普通按钮点击事件,通过点击发送特定文字到文本区域
*/
public class EventTest01 {private Frame f = new Frame(“事件测试”);
private Button btnOk = new Button(“点我”);
private TextField tf = new TextField(30);
public void init(){
//注册事件监听器
btnOk.addActionListener(new OkListener());
f.add(tf);
f.add(btnOk, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
//定义事件监听器类
class OkListener implements ActionListener{
//定义用于事件响应的特定事件
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(“用户点我了按钮”);
tf.setText(“嗯,按钮被点击了”);
}
}
public static void main(String[] args) {
new EventTest01().init();
}
}
效果:
3.2 事件和事件监听器
AWT事件机制涉及三个成员:事件源、事件和事件监听器。在这三个中,事件源最容易,只需要通过new来创建一个组件,该组件就是事件源;事件又是由系统自动产生的,无需我们关心;因此,实现事件监听器是整个事件处理的核心,事件监听器必须实现事件监听器接口。
AWT事件的分类:低级事件和高级事件
低级事件:
•ComponentEvent:组件事件,当组件尺寸发生变化、位置发生变化够可以触发。
•ContainerEvent:容器事件
•WindowEvent:窗口事件
•FocusEvent:焦点时间
•KeyEvent:键盘事件
•MouseEvent:鼠标事件
高级事件:(是基于语义的事件,它可以不和特定的动作相关联,而依赖于触发此事件的类)
•ActionEvent:动作事件,当按钮、菜单项被单击,在TextField中按Enter键时触发该事件
•TextEvent:文本事件,当文本框、文本域中的文本发生改变时触发该事件。
3.3 事件适配器
事件适配器是监听器接口的空实现——事件适配器实现了监听器接口,并为该接口里的每个方法都提供了实现,这种实现是一种空实现。当需要创建监听器时,可以通过继承事件适配器,而不是实现监听器接口。
举例:
package com.xx.awt03;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
-
使用时间监听器的方式,来完成窗口中关闭按钮的实现
*/
public class WindowAdapterTest {
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){
System.exit(0);
}
}
public static void main(String[] args) {
new WindowAdapterTest().init();
}
}
效果展示:
实现点击按钮“X”可以关闭窗口。
事件监听器是一个特殊的Java对象,实现事件监听器对象有4种方式:内部类形式、外部类形式、类本身作为事件监听器类、匿名内部类。
3.4 使用内部类实现监听
3.5 使用外部类实现监听器
3.6 使用类本身作为事件监听器类
3.7 匿名内部类实现监听器
想要更多资料,可以加微信mageit私发!