`
891633093
  • 浏览: 48878 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java之初学事件处理- 事件发生器

阅读更多
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ButtonTest {
public static void main(String[] args){
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class ButtonFrame extends JFrame{
public ButtonFrame(){
setTitle("ButtonTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
ButtonPanel panel = new ButtonPanel();
add(panel);
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}
class ButtonPanel extends JPanel{
public ButtonPanel(){
JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");
add(yellowButton);
add(blueButton);
add(redButton);
ColorAction yellowAction = new ColorAction(Color.yellow);
ColorAction blueAction = new ColorAction(Color.blue);
ColorAction redAction = new ColorAction(Color.red);
yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}
private class ColorAction implements ActionListener{
public ColorAction(Color c){
backgroundColor = c;
}
public void actionPerformed(ActionEvent event){
setBackground(backgroundColor);
}
private Color backgroundColor;
}
}


为了实现ActionListener接口,监听类必须有一个称为actionPerformed的方法,actionPerformed方法是
ActionListener中的唯一方法,该方法接收一个ActionEvent对象,此对象包含了事件发生时的相关信息
----------------------------------------------------------

***********************javax.swing.JButton

JButton(String label)

参数:label  显示按钮上的文本

***********************java.awt.Container

Component add(Component c)

将组件c添加到容器中

******************java.swing.ImageIcon

imageIcon(String filename)

---------------------------------------------------------
================建立内部类

创造一个图标,存储在一个文件中,通过媒体跟踪器自动加载这个图像

从上边可以看到:每一个按钮的处理过程都是一样的

1.用标签字符串构造按钮

2.将按钮添加到面板

3.用适当的颜色构造一个动作监听器

4.添加动作监听器

为了简化 ,可以使用一个辅助方法:

void makeButton(String name ,Color backgroundColor){
JButton button = new JButton(name);
add(button);
ColorAction action = new JButton (backgroundColor);
button.addActionListener(action);
}

然后将ButtonPanel 的构造器简化为:
public ButtonPanel(){
makeButton(“yellow”,ColorYELLOW);
...
}

紧接着可以进一步简化,注意:ColorAction类只在makeButton方法中用到一次,因此可以设置成一个匿名类

void makeButton(String name ,Color backgroundColor){
JButton button = new JButton(name);
add(button);
button.addActionListener(new
ActionListener(){
public void actionPerformed(ActionEvent event){
setBackground(backgroundColor);
}
});
}


------------------------------------------------------

============将组件变成事件监听器

任何实现了ActionListener接口的类对象都可以作为按钮监听器


Class ButtonPanel extends JPanel implements ActionListener{
..
public void actionPerformed(ActionEvent event)
{
}
..
}
然后将面板设为三个按钮的监听对象:
yellowButton。addActionListener(this);
..
..
..
现在这三个按钮不再是独立的监听器,他们共享一个监听器,即按钮面板

actionPerformed方法必须判断点击了哪个 按钮

Object source = event.getSource();

actionPerformed方法可以判断哪个按钮是事件源

if(source==yellowButton)
else
..

****************************java.util.EventObject

Object getSource();
返回事件的对象引用

****************java.awt.event.ActionEvent

String getActionCommand()

返回与这个动作事件相关的命令字符串

********************javax.swing.UIManager.LookAndFeelInfo

String getName()

返回观感的显示名称

String getClassName()
1
1
分享到:
评论

相关推荐

    【Java入门知识图谱】帮助Java初学者成长

    【对线面试官】Java从编译到执行,发生了什么? 【对线面试官】双亲委派机制 【对线面试官】JVM内存结构 【对线面试官】垃圾回收机制 【对线面试官】CMS垃圾回收器 【对线面试官】G1垃圾收集器 【对线面试官】JVM...

    Java初学者都必须理解的六大问题

    如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。  问题一:我声明了什么!  String s = "Hello world!";  许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是...

    JAVA设计-二维码门禁管理系统.zip

    该系统适用于Java语言开发者、门禁管理系统开发人员、Java初学者等。通过该系统的学习和实践,可以深入了解Java语言在物联网、智能安防等领域的应用和实现方法。 场景目标: 该系统旨在为需要进行门禁管理的场所...

    Java毕业设计-基于jspm开发的大众书评网-附源代码和说明文档.rar

    该项目采用jspm作为模块加载器,结合前端技术和后端Java技术,构建了一个功能丰富、交互友好的大众书评网。用户可以在网站上浏览各类书籍的详细信息,查看其他用户的书评,也可以自己发表书评,与其他书友交流心得。...

    简单的三角生成器

    呵呵 用于java初学者就是一些简单的额java程序

    java高级编程必须知道的集合详细讲解

    这份资源旨在为您提供关于 Java 集合框架的详细讲解,涵盖了集合的类型、特性、应用场景以及使用方法。通过深入学习,您将建立坚实的集合框架知识,能够更好地选择和应用适合的集合来满足不同的编程需求。 集合框架...

    Java的六大问题你都懂了吗

    这些问题对于认真学习java的人都要必知的,当然如果你只是初学者就没必要那么严格了,那如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。  一、到底要怎么样初始化!  本问题讨论...

    algorithm-samples:简单算法

    一些适合Java初学者的简单程序 计算机科学中的著名算法 com.test.maxflow中的最大流量问题 com.test.maxcover中的最大覆盖问题 数论 3.1。 使用欧几里得方法的最大公约数 动态编程 数据结构: 哈希图 图形 列表 ...

    java设计模式CatalogDAOFactory是典型的工厂方法

    为什么说代码很难看,初学者可能没有这种感觉,我们分析如下,初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于Java面向...

    根据数据表自动生成基础CRUD代码

    "CRUD代码生成器(Java)" 是一个强大的工具,旨在帮助开发者根据数据库中的数据表自动生成基础CRUD代码。这包括实体类(Entity)、数据访问对象(DAO)、数据传输对象(DTO)、值对象(VO)、查询对象(QO)、转换器...

    Eclipse权威开发指南2.pdf

    3.2.1 Java编辑器概述..... 71 3.2.2 键入辅助..... 76 3.2.3 代码辅助..... 77 3.2.4 代码生成..... 80 3.2.5 导航Java错误和警告..... 81 3.2.6 使用快速修正功能来修改Java错误..... 82 3.2.7 重构..... 83 ...

    Eclipse权威开发指南3.pdf

    4.2.4 使用Java编辑器进行调试..... 116 4.2.5 对当前所调试的程序进行操作..... 117 4.2.6 Console视图中的程序输出..... 119 4.2.7 有关断点的更多知识..... 119 4.2.8 Java异常断点..... 121 4.2.9...

    Eclipse权威开发指南1.pdf

    4.2.4 使用Java编辑器进行调试..... 116 4.2.5 对当前所调试的程序进行操作..... 117 4.2.6 Console视图中的程序输出..... 119 4.2.7 有关断点的更多知识..... 119 4.2.8 Java异常断点..... 121 4.2.9...

    go-workshops:devz的Go语言基础研讨会

    随意查看代码,其中有许多注释对于初学者和半中级的Go开发人员可能是有用的。 关于围棋 谁设计了Go语言? Rob Pike(Unix,UTF-8) 肯·汤普森(Unix作者,UTF-8,B lang) Robert Griesemer(V8,Java热点...

    代码之美(中文完整版).pdf

    虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。 本书收录的是软件设计领域中的一组大师级作品。每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案...

    JavaScript内核系列

    后来,考虑到这个脚本语言的推 广,网景采取了一种宣传策略,将LiveScript更名为JavaScript,目的是为了跟当时非常流行的面向对象语言Java发生暧昧的关系。这种 策略显然颇具成效,以至于到现在很多初学者还会为...

    二十三种设计模式【PDF版】

    设计模式之 Template(模板方法) 实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍. 设计模式之 Strategy(策略) 不同算法各自封装,用户端可随意挑选需要的算法. 设计模式之 Chain of ...

Global site tag (gtag.js) - Google Analytics