- 一:事件处理机制:
- 1、事件处理机制——事件处理流程
- 2、事件处理机制——主要步骤
- 二:Swing常用事件处理:
- 1、窗体事件
- 2、鼠标事件
- 3、键盘事件
- 4、动作事件
- 三:事件监听器:
一:事件处理机制:
定义:
Swing组件中的事件处理专门用于响应用户的操作,例如,响应用户的单击鼠标、按下键盘等操作。
Swing事件处理涉及的三类对象:
1、事件处理机制——事件处理流程
说明: 事件源是一个组件,当用户进行一些操作时,如按下鼠标或者释放键盘等,都会触发相应的事件,如果事件源注册了监听器,则触发的相应事件将会被处理。
2、事件处理机制——主要步骤
除了一些常见的按钮、键盘等组件可以作为事件源外,包括JFrame窗口在内的顶级容器也可以作为事件源;
根据要监听的事件源创建指定类型的监听器进行事件处理,该监听器是一个特殊的Java类,必须实现XxxListener接口(根据组件触发的动作进行区分,如WindowListener用于监听窗口事件,ActionListener用于监听动作事件);
使用addXxxListener()方法为指定事件源添加特定类型的监听器。当事件源上发生监听的事件后,就会触发绑定的事件监听器,然后由监听器中的方法进行相应处理。
二:Swing常用事件处理:
1、窗体事件
说明:
对窗体进行操作时,例如窗体的打开、关闭、激活、停用等,这些动作都属于窗体事件。
Java中提供了一个WindowEvent类用于表示窗体事件。
使用:
首先需要定义一个实现了WindowListener接口的类作为窗体监听器;
然后通过addWindowListener()方法将窗体对象与窗体监听器进行绑定。
2、鼠标事件
说明:
用户会经常使用鼠标来进行选择、切换界面等操作,这些操作被定义为鼠标事件,其中包括鼠标按下、鼠标松开、鼠标单击等。
Java中提供了一个MouseEvent类用于表示鼠标事件。
几乎所有的组件都可以产生鼠标事件。
使用:
首先需要通过实现MouseListener接口定义监听器(也可以通过继承适配器MouseAdapter类来实现);
然后调用addMouseListener()方法将监听器绑定到事件源对象。
说明:
MouseEvent类中定义了很多常量来识别鼠标动作。
MouseEvent.BUTTON1:用来判定鼠标左击事件;
MouseEvent.BUTTON3:用来判定鼠标右击事件;
MouseEvent.BUTTON2:用来判定鼠标滚轮点击事件;
3、键盘事件
说明:
键盘操作也是最常用的用户交互方式,例如键盘按下、释放等,这些操作被定义为键盘事件。
Java中提供了一个KeyEvent类表示键盘事件。
使用:
处理键盘事件的监听器对象需要实现KeyListener接口或者继承KeyAdapter类;
然后调用addKeyListener()方法将监听器绑定到事件源对象。
4、动作事件
说明:
动作事件与前面三种事件有所不同,它不代表某类事件,只是表示一个动作发生了。
例如,在关闭一个文件时,可以通过键盘关闭,也可以通过鼠标关闭。
在Java中,动作事件用ActionEvent类表示。
使用:
处理动作事件的监听器对象需要实现ActionListener接口。
三:事件监听器:
package First;
import java.awt.event.*;
import javax.swing.*;
public class _6_事件监听器 {
public static void main(String[] args) {
new MyFrame1("shijian");
}
}
class MyFrame1 extends JFrame{
JButton jbtn ;
MyFrame1(String title){
super(title);
jbtn = new JButton("ok");
// 在命令按钮上添加一个监视器
jbtn.addActionListener(new MyMointor1());
this.add(jbtn);
this.setBounds(200, 300, 100, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//不同的事件对应不同的监视器,监视器与事件是一一对应的
//实现监视器的时候都需要一个参数
class MyMointor1 implements ActionListener{
public void actionPerformed(ActionEvent e) {
System.out.println("ok");
}
}
运行结果弹出了一个窗口,点击窗口中的ok按钮,会运行出
说明:
不同的事件对应不同的监视器,监视器与事件是一一对应的。
实现监视器的时候都需要一个参数