按钮事件处理(3)

  在进行gui编程时,我们最常使用的控件时按钮,在java中JButton类代表了按钮。它的类层次结构图是:

java.lang.Object|_ java.awt.Component|_java.awt.Container|_javax.swing.JComponent|_javax.swing.AbstractButton|_javax.swing.JButton

  我们使用按钮的目的不是为了好看,而是点击它,产生某些我们想要的结果,即事件处理。在c语言中,我们需要不断检查事件队列,然后依次处理。但是这种方式编写的程序可读性很差,在java中采用了事件监听器,它对每个需要控制的控件,都绑定一个监听器,绑定的监听器负责进行处理相关事宜。流程就是控件产生了事件,然后传递给了监听器,监听器接收到事件,然后进行处理。

  java将控件产生的事件的所有相关信息都封装到一个事件对象,这个事件对象都派生于java.util.EventObject,按钮对应的事件对象是ActionEvent。每个监听器都必须实现一个叫ActionListener的接口,实现其中的方法actionPerformed(ActionEvent e)。

  

public class test()
{public static void main(String[] args){... ...javax.swing.JButton button = new javax.swing.JButton();... ...TestAction action = new TestAction();button.addActionListener(action);}class TestAction implements java.awt.event.ActionListener{public void actionPerformed(java.awt.event.ActionEvent e){Object obj = e.getSource();if(obj == button)test(e);}}void test(java.awt.event.ActionEvent event){... ...} 
}

  一个监听器可以同时被多个控件使用,除了上文的判断某个控件的方法之外,还可以使用setActionCommand(String name)方法将这个按钮产生的事件命名,然后在actionPerformed方法中使用e.getActionCommand().equals()方法判别。

转载于:https://www.cnblogs.com/canyudeguang/p/7078570.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西

# re: Linux I2C 驱动阅读的碰到的一些网上没有提到的东西 回复 更多评论2009-04-11 13:39 by 初学都楼主,你好。我看了你那篇《Linux I2C核心、总线与设备驱动[转]》,让我明白了不少,不过我还是有些不明白的地方,想请教一下。我…

Java内存模型和优化

总览 许多多线程代码开发人员都熟悉这样的想法,即不同的线程可以对持有的值有不同的看法,这不是唯一的原因,即如果线程不安全,它可能不会看到更改。 JIT本身可以发挥作用。 为什么不同的线程看到不同的值? 当您有多个…

C_数组详解

数组: 一 一维数组 1.1 一维数组的定义: 类型符 数组名[常量表达式]; int a[10]; 说明: 1.数组的命名规则遵循标识符命名规则。 2.定义时需要指定元素的个数。方括号里的常量表达式表示元素的个数。 3.常量表达式中不能包含变量;如:int a[n];…

CSS节选——选择器

CSS,cascading style sheet,层叠样式表,请留意层叠概念。 css3为了区分伪类和伪元素,伪元素采用双冒号写法。 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before…

python游戏循环设置_Pygame:游戏循环前的初始菜单

我正在制作一个this game的版本,并尝试将起始菜单设置为:我的计划是先做surface.fill(overlaycolor),然后将这个图像blitting到屏幕上。在一个while循环中。之后,在用户想玩(另一个问题除外)之后,我们将进入另一个whil…

vue.js基础知识篇(7):表单校验详解

目录 网盘 第12章:表单校验 1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vuerequire("vue"); var VueValidatorrequire("vue-validator"); Vue.use(VueValidator); 2.直接使用script标签引入vue.js 要下载vue-validator&#xff0c…

修改linux绑定的域名,手工修改linux系统下DA面板绑定的域名

举例说明手工修改DA面板下虚拟主机ryan绑定的域名,只需要 vi /usr/local/directadmin/data/users/ryan/httpd.conf代码如下:# Auto generated apache config file by DirectAdmin version 1.46.3# Modifying this file is not recommended as any change…

在JUnit测试中使用Builder模式

这并不是要成为技术含量很高的职位。 这篇文章的目的是为您提供一些指导,以使您的JUnit测试生活更加轻松,使您能够在几分钟内编写复杂的测试场景,并具有易于阅读的测试优势。 单元测试中有两个主要部分,需要编写许多引导程序代码&…

SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别

原文链接:https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时,有时候需要建立临时表,将查询后的结果集放到临时表中,然后在针对这个数据进行操作。 创建“临时表”(逻辑上的临时表&…

python 三维绘图库_Python第三方库matplotlib(2D绘图库)入门与进阶

Matplotlib一 简介:Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务…

zbb20170626 myeclipse 2017 ci 构建 spring hibernate struts jar

转载于:https://www.cnblogs.com/super-admin/p/7081209.html

linux处理机调度实验报告,模拟Linux操作系统下处理机调度实验报告

在采用多道系统的设计程序中,往往有若干进程同时处于就绪状态。当就绪状态进程数大于处理机数时,就必须按照某种策略来决定哪些进程优先占用处理机。本实验模拟在单处理机情况下处理机调度处理机调度一、实验目的:1、了解Linux下Emacs编辑器的使用方法,掌…

Java线程:保留的内存分析

本文将为您提供一个教程,使您可以确定活动应用程序Java线程保留Java堆空间的数量和位置。 将提供来自Oracle Weblogic 10.0生产环境的真实案例研究,以使您更好地理解分析过程。 我们还将尝试证明过多的垃圾回收或Java堆空间的内存占用问题通常不是由真正…

软件测试白皮书-等价类

设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能&qu…

深入css布局 (1) — 盒模型 元素分类

深入css布局(1)—— 盒模型 & 元素分类 “ 在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点。今天我们来深入学习一下css布局相关的知识。” 首先来列下大纲 盒模…

批改网禁止粘贴怎么破_教育部对家长批改作业表态了,明令禁止!你怎么看?...

互联网的发展,的确方便了现代人生活。视频电话、出去买东西你都不用带钱带卡,手机一扫就可以完成支付。很多中小学的家长都会建一个家长群,方便老师和家长的沟通。这个群可以说是家长和学校的桥梁和纽带,家长们为了支持老师的工作…

电子科大专科c语言作业1,电子科大15春《C语言(专科)》在线作业试卷.docx

电子科大 15 春《 C 语言(专科)》在线作业一、单选题(共20 道试题,共100 分。)1.对于 int*p;inta[];pa;的合法运算 ()a;pa;p; 相当于 a;p; 相当于 a[1];若 p 中的地址为 100 则 p; 运算后,则其值为 100-----------------选择: C已知 intb; 则…

MapReduce算法–顺序反转

这篇文章是介绍MapReduce算法的系列文章的另一部分,该书在使用MapReduce进行数据密集型文本处理中找到。 先前的文章是Local Aggregation , Local Aggregation PartII和创建共现矩阵 。 这次我们将讨论阶数反转模式。 顺序反转模式利用的MapReduce来计算…

xss防御

http://blog.csdn.net/ghsau/article/details/17027893转载于:https://www.cnblogs.com/jiangjing/p/8076216.html

移动端页面字体在微信被放大,导致排版错乱

在开发微信页面的时候,之前一直没有测出这个问题。直到某天领导的手机出现了排版错位的问题,拿着手机质问我的工作态度。 Google了一下发现原来微信调整了字体大小会放大网页的字体,导致排版混乱。通过设置可以禁止网页字体被放大&#xff1a…