java 中button怎么响应鼠标右键点击事件_java处理按钮点击事件的方法-程序员宅基地

技术标签: java 中button怎么响应鼠标右键点击事件  

不同的事件源可以产生不同类别的事件。例如,按钮可以发送一个ActionEvent对象,而窗口可以发送WindowEvent对象。

AWT时间处理机制的概要:

1. 监听器对象是一个实现了特定监听器接口(listener interface)的类的实例。

2. 事件源是一个能够注册监听器对象并发送事件对象的对象。

3. 当事件发生时,事件源将事件对象传递给所有注册的监听器。

4. 监听器对象将利用事件对象中的信息决定如何对事件做出响应。

下面是监听器的一个示例:

java" id="highlighter_487565">

现在,只要按钮产生了一个“动作事件”,listener对象就会得到通告。对于按钮来说,正像我们想到的,动作事件就是点击按钮。

为了实现ActionListener接口,监听器类必须有一个被称为actionPerformed的方法,该方法接收一个ActionEvent对象参数。

只要用户点击了按钮,JButton对象就会创建一个ActionEvent对象,然后调用listener.actionPerformed(event)传递事件对象。可以将多个监听器对象添加到一个像按钮这样的事件源中。这样一来,只要用户点击按钮,按钮就会调用所有监听器的actionPerformed方法。

实例:处理按钮点击事件

为了加深对事件委托模型的理解,下面以一个响应按钮点击事件的简单示例来说明所需要知道的细节。在这个示例中,想要在一个面板中放置三个按钮,添加三个监听器对象用来作为按钮的动作监听器。

在这个情况下,只要用户点击面板上的任何一个按钮,相关的监听器对象就会接收到一个ActionEvent对象,它表示有个按钮被点击了。在示例程序中,监听器对象将改变面板的背景颜色。

在演示如何监听按钮点击事件之前,首先需要讲解一下如何创建按钮以及如何将他们添加到面板中。

可以通过在按钮构造器中指定一个标签字符串、一个图标或两项都指定来创建一个按钮。下面是两个示例:

将按钮添加到面板中需要调用add方法:

至此,知道了如何将按钮添加到面板上,接下来需要增加让面板监听这些按钮的代码。这需要一个实现了ActionListener接口的类。如前所述,应该包含一个actionPerformed方法,其签名为:

public void actionPerformed(ActionEvent event)

当按钮被点击时,希望将面板的背景颜色设置为指定的颜色。这个颜色存储在监听器类中:

然后,为每种颜色构造一个对象,并将这些对象设置为按钮监听器。

例如,如果一个用户在标有“Yellow”的按钮上点击了一下,yellowAction对象的actionPerformed方法就会被调用。这个对象的backgroundColor实例域被设置为Color.YELLOW,现在就将面板的背景颜色设置为黄色。

这里还有一个需要考虑的问题。ColorAction对象不能访问buttonpanel变量。可以采用两种方式解决这个问题。一个是将面板存储在ColorAction对象中,并在ColorAction的构造器中设置它;另一个是将ColorAction作为ButtonPanel类的内部类,如此,它的方法就自动地拥有访问外部面板的权限了。

下面说明一下如何将ColorAction类放在ButtonFrame类内。

以上这篇java处理按钮点击事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35815036/article/details/115097052

智能推荐

jstl标签库详解:core标签/function/fmt等等_jstk标签core,fmt,sql的作用-程序员宅基地

文章浏览阅读1.3k次。JSTL简介:标准标签库JSTL的全名为:Java Server Pages Standard Tag Library.JSTL主要提供了5大类标签库:1.核心标签库:为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等).2.国际化(I18N)标签库:支持多种语言的引用程序.3.SQL标签库:_jstk标签core,fmt,sql的作用

APUE编程:38---文件目录(用户、组ID修改:chown、fchown、fchownat、lchown)-程序员宅基地

文章浏览阅读518次。一、函数#include <unistd.h>int chown(const char *path, uid_t owner, gid_t group);int fchown(int fd, uid_t owner, gid_t group);int lchown(const char *path, uid_t owner, gid_t group);#include...

网络流EdmondsKarp算法模板理解-程序员宅基地

文章浏览阅读224次。先推荐一个讲网络流的博客,我的网络流知识均吸收于此 传送门EdmondsKarp算法基本思想:从起点到终点进行bfs,只要存在路,说明存在增广路径,则取这部分路 权值最小的一部分,即为增广路径(也就是这一部分路的最大流量)。然后将这条路上的正向权值都减去min,反向权值都加上min(即,m[i][j]-min,m[j][i]+min,为什么等会再解释)。然后重复此操作,最终就得到了最大流。先上...

C语言零碎整理_c语言里零碎知识点-程序员宅基地

文章浏览阅读174次。开平方:sqrt(num); 。平方:num * num; 或者 pow(num, 2); 。注意:使用sqrt()或者pow()时需要添加#include &amp;lt;math.h&amp;gt;。_c语言里零碎知识点

BAT机器学习面试题1000题-程序员宅基地

文章浏览阅读671次。《BAT机器学习面试1000题》系列作为国内首个AI题库,囊括绝大部分机器学习和深度学习的笔试面试题、知识点,可以作为机器学习自测题,也可以当做查漏补缺的资料库。七月在线AI题库(网页版及APP版)见“阅读原文”306. LSTM神经网络输入输出究竟是怎样的?@YJango,本题解析来源:https://www.zhihu.com/question/41949741Recurrent Layers...

spark配置详解_spark.default.bak.conf-程序员宅基地

文章浏览阅读674次。这些皆可在 spark-default.conf配置,或者部分可在 sparkconf().set设置 应用程序属性|--------------------------------------------------------------------------------------------| 属性名称 | 默认值 | 含义|-------------..._spark.default.bak.conf

随便推点

开发人员学Linux(14):CentOS7安装配置大数据平台Hadoop2.9.0-程序员宅基地

文章浏览阅读81次。1.前言“大云物移”是当年很火热的一个话题,分别指大数据、云计算、物联网和移动互联网,其中大数据领域谈论得多就是Hadoop。当然Hadoop不代表大数据,而是大数据处理领域的一个比较有名的开源框架而已,通常说的大数据包含了大数据的存放、大数据的分析处理及大数据的查询展示,本篇提到的Hadoop只不过是在其中的大数据的分析处理环节起作用,Apache提供了一个开源全家桶,包括了Hadoop、HBa..._ambari respect the privacy of others

html如何使文件间距变大,wps文档数字、字母间距变大怎么办-解决wps文档数字、字母间距变大的方法 - 河东软件园...-程序员宅基地

文章浏览阅读1k次。在使用WPS编辑文件的时候我们经常会输入很多的数字和英文字母,这些都是我们常用的字符。特别是在制作一些比较正规的文件时,格式的正确性是很重要的。有些用户在刚刚开始接触WPS文档的时候经常会在输入字符的时候发现每个字符之间都有很大的空间,如下图所示,这种情况只会发生在数字和字母中!一般出现这样的情况和文件是没有太大关联的,很有可能是你在操作的时候误按了某个按键导致的!方法步骤:大小:64.99 MB..._wps文档数字间距突然变大

2017-赛客夏令营-Web-weakphp-程序员宅基地

文章浏览阅读8.4k次。我擦???居然是git泄露通过利用工具得到目录得到index.php求是user和pass不相同而MD5却相等,验证了php弱类型的想法????:PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以“0E”开头的,那么PHP将会认为他们相同,都是0。以下值在md5加密后以0E开头:QNKCDZO240610708s878926199as155964671as214587387as214587387aGE

ZOJ-What Kind of Friends Are You?-程序员宅基地

文章浏览阅读1k次。What Kind of Friends Are You?Japari Park is a large zoo home to extant species, endangered species, extinct species, cryptids and some legendary creatures. Due t...

XMind、Notepad++、markdown-程序员宅基地

文章浏览阅读539次。今天给大家推荐三个比较使用的东东XMind首先我们打开百度,在搜索框中输入XMind,然后进入官方网站然后就是下载啦,下载后我们打开可以看见很多不同样式的思维导图。我们以第一个思维导图为例,我们的enter键是创建同级的标题,我们的tab键是创建子标题。Notepad++自行下载,然后它的页面就是酱紫的,我大学期间打开某以代码的文件都是用它看,很好用,看的也比较有感觉。markdown我们首先可以下载一个Typora,(下载过程不写啦),然后打开文件就是下面这样(点击小圆圈是显示隐藏

什么是程序猿_程序猿csdn-程序员宅基地

文章浏览阅读2.6k次。“程序猿”是网友们对“程序员”的爱称,程序员(英文Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。一般的程序员都经过了专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工..._程序猿csdn