《Java数字图像处理:编程技巧与应用实践》——3.4 基本JButton事件响应

简介:

本节书摘来自华章计算机《Java数字图像处理:编程技巧与应用实践》一书中的第3章,第3.4节,作者 贾志刚,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 基本JButton事件响应

在学习JButton事件响应的知识之前,首先来看一下Swing中如何实现对用户事件的监听与处理,认识一下Swing中事件响应最重要的线程—事件分派线程。

在Swing中有一个特殊的线程被称为Swing事件分配线程,如果对UI组件的操作不在Swing事件分派线程中,Swing将抛出异常。检测当前线程是否为事件分派线程可以通过Swing本身提供的一个简单方法SwingUtilities.isEventDispatchThread()来完成。对Swing UI组件的刷新、重绘等必须都在事件分派线程中完成,这是因为Swing组件本身的设计不是线程安全的,所以通过一个特殊的线程—事件分派线程来实现对所有组件的更新与重绘,这样就保证了Swing组件操作的线程安全性。

JButton组件是Java Swing中实现用户交互最常用的组件,当用户单击对应的JButton组件时,Swing通过监听组件添加ActionListener对象实例,来实现对JButton组件单击事件的监听与响应处理,其响应处理则通过实现ActionListener接口的actionPerformed()方法来完成。很多时候,在单击JButton按钮以后,虽然有很多事情要做,但还是希望UI可以继续响应用户操作,这时可使用SwingWork来完成用户的操作并刷新UI显示。

在对Swing事件响应机制有初步了解以后,下面看一下在正式的项目编程中Swing如何实现对JButton事件监听与响应。其实现过程大致可以分为两步完成。

1)实现ActionListener接口,最常见的是由定义JButton组件的类来实现ActionListener接口。

2)根据ActionEvent.getActionCommand()得到的文本常量响应相应的用户操作。

相关文章
|
15天前
|
Java 测试技术 索引
滚雪球学Java(14):快速入门JavaSE-for循环语句,轻松掌握编程技巧
【4月更文挑战第3天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
28 1
滚雪球学Java(14):快速入门JavaSE-for循环语句,轻松掌握编程技巧
|
25天前
|
Java
在Java中,多态性允许不同类的对象对同一消息做出响应
【4月更文挑战第7天】在Java中,多态性允许不同类的对象对同一消息做出响应
18 2
|
2月前
|
文字识别 Java Maven
java调用tess4j识别图像中的文字
java调用tess4j识别图像中的文字
27 3
|
2月前
|
Java
Java处理事件
Java处理事件
16 0
|
6月前
|
安全 Java API
Java编程技巧:if-else优化实践总结归纳
说实话,其实我很讨厌在代码里大量使用if-else,一是因为该类代码执行方式属于面向过程的,二嘛,则是会显得代码过于冗余。这篇笔记,主要记录一些自己在工作实践当中针对if-else的优化心得,将会不定期地长期更新。
64 0
|
3月前
|
缓存 Java 数据库
2024java面试题无需C币下载 速度之战:全方位解决Java接口慢响应问题
2024java面试题无需C币下载 速度之战:全方位解决Java接口慢响应问题
74 1
|
4月前
|
算法 Python Java
Java每日一练(20230414) Pow(x, n) 、旋转图像、买卖股票的最佳时机 IV
Java每日一练(20230414) Pow(x, n) 、旋转图像、买卖股票的最佳时机 IV
27 0
Java每日一练(20230414) Pow(x, n) 、旋转图像、买卖股票的最佳时机 IV
|
5月前
|
Java C# C++
【从Java转C#】第八章:委托、lambda、事件
【从Java转C#】第八章:委托、lambda、事件
|
5月前
|
Java API 容器
java和VB中按键事件处理:解析 KeyCode、KeyAscii; KeyDown/KeyUp/KeyPress 的关系区别及应用
java和VB中按键事件处理:解析 KeyCode、KeyAscii; KeyDown/KeyUp/KeyPress 的关系区别及应用
|
5月前
|
Java 图形学 计算机视觉
【Java数字图像处理之Swing基础篇】自定义JPanel背景
【Java数字图像处理之Swing基础篇】自定义JPanel背景