• 一:事件处理机制:
  • 1、事件处理机制——事件处理流程
  • 2、事件处理机制——主要步骤
  • 二:Swing常用事件处理:
  • 1、窗体事件
  • 2、鼠标事件
  • 3、键盘事件
  • 4、动作事件
  • 三:事件监听器:


一:事件处理机制:

定义:

Swing组件中的事件处理专门用于响应用户的操作,例如,响应用户的单击鼠标、按下键盘等操作。

Swing事件处理涉及的三类对象:

java中事件发生在按钮上 java按钮事件处理_事件源

1、事件处理机制——事件处理流程

java中事件发生在按钮上 java按钮事件处理_java中事件发生在按钮上_02


说明: 事件源是一个组件,当用户进行一些操作时,如按下鼠标或者释放键盘等,都会触发相应的事件,如果事件源注册了监听器,则触发的相应事件将会被处理。

2、事件处理机制——主要步骤

java中事件发生在按钮上 java按钮事件处理_事件处理_03


除了一些常见的按钮、键盘等组件可以作为事件源外,包括JFrame窗口在内的顶级容器也可以作为事件源;

java中事件发生在按钮上 java按钮事件处理_监听器_04


根据要监听的事件源创建指定类型的监听器进行事件处理,该监听器是一个特殊的Java类,必须实现XxxListener接口(根据组件触发的动作进行区分,如WindowListener用于监听窗口事件,ActionListener用于监听动作事件);

java中事件发生在按钮上 java按钮事件处理_java中事件发生在按钮上_05


使用addXxxListener()方法为指定事件源添加特定类型的监听器。当事件源上发生监听的事件后,就会触发绑定的事件监听器,然后由监听器中的方法进行相应处理

二:Swing常用事件处理:

java中事件发生在按钮上 java按钮事件处理_事件处理_06

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");
	}
}

java中事件发生在按钮上 java按钮事件处理_事件源_07


运行结果弹出了一个窗口,点击窗口中的ok按钮,会运行出

java中事件发生在按钮上 java按钮事件处理_事件处理_08


说明:

不同的事件对应不同的监视器,监视器与事件是一一对应的。

实现监视器的时候都需要一个参数