Java事件处理模型是一种人机交互模型,用户能够通过鼠标,键盘或者其他输入设备来操作程序的执行流程。对鼠标,键盘或其他输入设备的各种操作称作事件。
一,事件处理模型的三个要素
事件源(event source)
事件源就是awt和swing的各种组件或者容器,是接受各种事件的对象。
事件对象(event object)
在各种事件源上,对鼠标,键盘或其他输入设备进行各种操作时,一般会有事件发生,每种操作一般都对应着事件,事件对象就是记录事件源以及处理该事件所需要的各种信息。
事件监听器(event listener)
对于每一个明确的事件发生时,都会定义一个方法,对事件进行处理,这些也是通过事件监听器实现的。事件监听器对应的接口一般位于包java.awt.event和类javax.swing.event.中。
二,一些常用事件类
事件类或者接口 | 含义 |
---|---|
类java.awt.event.ActionEvent | 动作事件 |
类java.awt.event.AdjustmentEvent | 调整事件 |
类java.awt.event.ComponentEvent | 组件事件 |
类java.awt.event.FocusEvent | 焦点事件 |
类java.awt.event.ItemEvent | 项事件 |
类java.awt.event.KeyEvent | 键盘事件 |
类java.awt.event.MouseEvent | 鼠标事件 |
类java.awt.event.MouseWheelEvent | 鼠标滚轮事件 |
类java.awt.event.WindowEvent | 窗口事件 |
接口javax.swing.event.DocumenetEvent | 文档事件 |
类javax.swing.event.ListSelectionEvent | 列表选择事件 |
常见的事件对象与监听器对照表:
三,事件监听器步骤
1.确定事件源
比如登陆按钮
2.确定事件类型
动作事件
3.创建一个类型,实现监听器接口
新建一个监听器类,在该类中处理事件
4.创建监听器的对象,给事件源添加监听器
给事件源添加动作监听器
这里是我登陆界面的部分代码,具体详看我上一篇博客,其中有关于动作事件的处理https://blog.youkuaiyun.com/qq_44749781/article/details/97400644
//创建按钮
JButton btn = new JButton("登录");
//添加按钮
frame.add(btn);
//创建监听器对象
FrameListener jiantingqi = new FrameListener();
//给按钮添加监听器
btn.addActionListener(jiantingqi);
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class FrameListener implements ActionListener {
//输出入框的对象
JTextField input;
public void actionPerformed(ActionEvent e){
//获取内容
String name = input.getText();
String password = input.getText();
//自己设置账号密码
if(name.equals("1022") | password.equals("1234")){
JFrame frame = new JFrame();
frame.setSize(300,300);
frame.setTitle("登录成功");
frame.setVisible(true);
}
else{
System.out.println("登录错误");
}
}
}
四,常用的事件处理编程方法
动作事件
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
鼠标事件
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
键盘事件
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
项事件
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
}
其他事件就不一一阐述了,自己可以查看源代码,上面会有详细的解释。