Java AWT 图形界面编程事件处理机制 ① ( 事件处理步骤 | 创建事件源对象 -> 自定义事件监听器 -> 创建监听器实例对象 -> 事件源绑定事件监听器 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java AWT 图形界面编程事件处理机制 ① ( 事件处理步骤 | 创建事件源对象 -> 自定义事件监听器 -> 创建监听器实例对象 -> 事件源绑定事件监听器 )相关的知识,希望对你有一定的参考价值。
文章目录
一、关闭按钮功能
在之前的博客中写的 AWT 界面程序 , 右上角有三个按钮 , 分别是 最小化 , 最大化 , 关闭 按钮 ,
其中 最小化 最大化 按钮可以使用 , 功能由系统提供 ,
但是 关闭按钮 的 功能 需要 开发者自己添加 , 否则界面无法关闭 ;
在 AWT 界面上的组件 , 默认都是没有绑定事件的 , 有少数组件由系统提供绑定事件 , 大部分都需要开发者自己开发事件功能 ;
二、事件处理机制
事件处理机制 就是 在 某个组件 上执行 某个操作 , 会 自动触发执行一段代码 ; 这个操作可以是 按下 , 抬起 , 点击 , 移动 等操作 ;
事件处理 三要素 :
- 事件源 : 触发事件的组件 , 如 : 按钮 ;
- 事件 : 在组件上 触发的操作就是事件 , 如 : 点击 , 按下 , 抬起 , 滑动 , 拖动 等 ; 事件都被封装在了 Event 中 , 具体的 事件信息可以从 Event 实例对象中获取 ;
- 事件监听器 : 注册在 事件源 也就是 组件上的 监听器 , 如果监听到 事件发生 , 就会触发指定代码执行 ;
注册监听 : 将 事件监听器 绑定 到 事件源 的操作 , 就是 注册监听 ;
事件处理过程 :
- 首先 , 需要将事件监听器 注册给 事件源 ;
- 然后 , 外部的操作 作用在了 事件源 组件 上 ;
- 再后 , 事件源 生成了 Event 事件对象 , 其中封装了 外部操作 的各种数据 ;
- 最后 , 事件监听器 监听到了 事件 , 开始 执行 监听器 中的代码 , 在事件监听器中可以获取到事件源 生成的 事件对象 ;
三、事件处理步骤
事件处理步骤 :
- 首先 , 创建 事件源 实例对象 , 也就是 Component 组件对象 ;
- 然后 , 自定义 事件监听器 类 , 该类实现 事件监听器接口 , 需要重写指定的方法 , 一般都使用匿名内部类 ;
- 再后 , 创建 上述 自定义 事件监听器 实例对象 ;
- 最后 , 调用 事件源 添加 事件监听器 的函数 , 在 事件源 上 注册 事件监听器 ;
代码示例 :
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class HelloAWT
private Frame frame;
private FileDialog openDialog;
private MyActionListener myActionListener;
private void init()
frame = new Frame("AWT 界面编程");
openDialog = new FileDialog(frame, "打开文件", FileDialog.LOAD);
// 1. 创建 事件源 实例对象 , 也就是 Component 组件对象
Button openButton = new Button("打开文件");
// 3. 创建 上述 自定义 事件监听器 实例对象
myActionListener = new MyActionListener();
// 4. 调用 事件源 添加 事件监听器 的函数 , 在 事件源 上 注册 事件监听器
openButton.addActionListener(myActionListener);
frame.add(openButton);
frame.pack();
frame.setVisible(true);
// 2. 自定义 事件监听器 类 , 该类实现 事件监听器接口 , 需要重写指定的方法 , 一般都使用匿名内部类
class MyActionListener implements ActionListener
@Override
public void actionPerformed(ActionEvent e)
// 显示 打开文件对话框
// 提示选择 文件
// 执行后代码会阻塞在此处
openDialog.setVisible(true);
// 文件选择完毕 , 就会执行后续代码
// 获取选择的 目录名称 和 文件名称
System.out.println("打开的文件路径 : "
+ openDialog.getDirectory()
+ openDialog.getFile());
public static void main(String[] args)
new HelloAWT().init();
执行结果 : 点击按钮后 , 弹出对话框 ,
在对话框中选择文件 ,
最终打印出选择文件的路径 :
打开的文件路径 : C:\\Users\\octop\\Desktop\\隐私政策.md
以上是关于Java AWT 图形界面编程事件处理机制 ① ( 事件处理步骤 | 创建事件源对象 -> 自定义事件监听器 -> 创建监听器实例对象 -> 事件源绑定事件监听器 )的主要内容,如果未能解决你的问题,请参考以下文章
Java AWT 图形界面编程事件处理机制 ② ( Frame 窗口事件监听器 WindowListener | 代码示例 )
Java AWT 图形界面编程事件处理机制 ② ( Frame 窗口事件监听器 WindowListener | 代码示例 )
Java AWT 图形界面编程事件处理机制 ③ ( AWT 中常见的事件和事件监听器 | 低级事件 | 组件事件 | 窗口事件 | 鼠标事件 | 高级事件 | 动作事件 | 事件监听器 )
Java AWT 图形界面编程Canvas 组件中使用 Graphics 绘图 ① ( AWT 绘图线程 | Component 绘图函数 )