• 自身类作为事件监听器
  • 外部类作为事件监听器
  • 匿名内部类作为事件监听器
  • 内部类作为事件监听器

自身类作为事件监听器:

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. /**
  5. *Java事件处理机制:自身类作为事件监听器
  6. *@author Winty(wintys@gmail.com)
  7. *@version 2008-12-3
  8. */
  9. class ThisClassEvent extends JFrame implements ActionListener{
  10. JButton btn;
  11. public ThisClassEvent(){
  12. super("Java事件监听机制");
  13. setLayout(new FlowLayout());
  14. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. btn=new JButton("点击");
  16. btn.addActionListener(this);
  17. getContentPane().add(btn);
  18. setBounds(200,200,300,160);
  19. setVisible(true);
  20. }
  21. /**************************************/
  22. public void actionPerformed (ActionEvent e){
  23. Container c=getContentPane();
  24. c.setBackground(Color.red);
  25. }
  26. /**************************************/
  27. public static void main(String args[]){
  28. new ThisClassEvent();
  29. }
  30. }

外部类作为事件监听器:

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. /**
  5. *Java事件处理机制:外部类作为事件监听器
  6. *@author Winty(wintys@gmail.com)
  7. *@version 2008-12-3
  8. */
  9. class OuterClassEvent extends JFrame{
  10. JButton btn;
  11. public OuterClassEvent(){
  12. super("Java事件监听机制");
  13. setLayout(new FlowLayout());
  14. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. btn=new JButton("点击");
  16. btn.addActionListener(new OuterClass(this));
  17. getContentPane().add(btn);
  18. setBounds(200,200,300,160);
  19. setVisible(true);
  20. }
  21. public static void main(String args[]){
  22. new OuterClassEvent();
  23. }
  24. }
  25. /*外部类*********************************/
  26. class OuterClass implements ActionListener{
  27. OuterClassEvent oce;
  28. public OuterClass(OuterClassEvent oce){
  29. this.oce = oce;
  30. }
  31. public void actionPerformed(ActionEvent e){
  32. Container c=oce.getContentPane();
  33. c.setBackground(Color.red);
  34. }
  35. }

匿名内部类作为事件监听器:

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. /**
  5. *Java事件处理机制:匿名内部类作为事件监听器
  6. *@author Winty(wintys@gmail.com)
  7. *@version 2008-12-3
  8. */
  9. class AnonymousEvent extends JFrame{
  10. JButton btn;
  11. public AnonymousEvent(){
  12. super("Java事件监听机制");
  13. setLayout(new FlowLayout());
  14. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. btn=new JButton("点击");
  16. /*匿名内部类******************************/
  17. btn.addActionListener(
  18. new ActionListener(){
  19. public void actionPerformed(ActionEvent e){
  20. Container c=getContentPane();
  21. c.setBackground(Color.red);
  22. }
  23. }
  24. );
  25. /***************************************/
  26. getContentPane().add(btn);
  27. setBounds(200,200,300,160);
  28. setVisible(true);
  29. }
  30. public static void main(String args[]){
  31. new AnonymousEvent();
  32. }
  33. }

内部类作为事件监听器:

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. /**
  5. *Java事件处理机制:内部类作为事件监听器
  6. *@author Winty(wintys@gmail.com)
  7. *@version 2008-12-3
  8. */
  9. class InnerClassEvent extends JFrame{
  10. JButton btn;
  11. public InnerClassEvent(){
  12. super("Java事件监听机制");
  13. setLayout(new FlowLayout());
  14. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. btn=new JButton("点击");
  16. btn.addActionListener(new InnerClass());
  17. getContentPane().add(btn);
  18. setBounds(200,200,300,160);
  19. setVisible(true);
  20. }
  21. /*内部类*********************************/
  22. class InnerClass implements ActionListener{
  23. public void actionPerformed (ActionEvent e){
  24. Container c=getContentPane();
  25. c.setBackground(Color.red);
  26. }
  27. }
  28. /**************************************/
  29. public static void main(String args[]){
  30. new InnerClassEvent();
  31. }
  32. }
 
 

Java事件处理机制- 事件监听器的四种实现方式的更多相关文章

  1. [转]Java事件处理机制- 事件监听器的四种实现方式

    原文来自http://stefan321.iteye.com/blog/345221 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: ...

  2. 【转】转帖并注释:Java中的事件处理机制--事件监听器的四种实现方式

    原文地址:http://blog.sina.com.cn/s/blog_4b650d650100nqws.html Java中四种事件监听器的实现方式分别为: 自身类做为事件监听器 外部类作为事件监听 ...

  3. Java事件监听器的四种实现方式

    自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...

  4. Java事件监听的四种实现方式

    1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...

  5. 事件处理之二:点击事件监听器的五种写法 分类: H1_ANDROID 2013-09-11 10:32 4262人阅读 评论(1) 收藏

    首选方法二! 方法一:写一个内部类,在类中实现点击事件 1.在父类中调用点击事件 bt_dail.setOnClickListener(new MyButtonListener()); 2.创建内部类 ...

  6. java事件处理机制

    java中的事件机制的参与者有3种角色:   1.event object:就是事件产生时具体的"事件",用于listener的相应的方法之中,作为参数,一般存在与listerne ...

  7. 从零开始理解JAVA事件处理机制(2)

    第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事 ...

  8. 从零开始理解JAVA事件处理机制(1)

    “事件”这个词已经被滥用了.正因为“事件”的被滥用,很多人在用到事件的时候不求甚解,依样画葫芦,导致学习工作了很多年,还是不清楚什么是事件处理器.什么是事件持有者.所以,如果你对于Event这个词还是 ...

  9. 从零开始理解JAVA事件处理机制(3)

    我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...

随机推荐

  1. 02C++基本语法

    基本语法 2.1.1单行注释 // 2.1.2多行注释 /* * */ 2.1.3标识符 C++ 标识符是用来标识变量.函数.类.模块,或任何其他用户自定义项目的名称.一个标识符以字母 A-Z 或 a ...

  2. 习题练习(视觉slam14讲课后习题)

    设有⼩萝⼘1⼀号和⼩萝⼘⼆号位于世界坐标系中. ⼩萝⼘⼀号的位姿为:q1 = [0.55, 0.3, 0.2, 0.2], t1 = [0.7, 1.1, 0.2]T(q 的第⼀项为实部).这⾥的 q ...

  3. js中=,==,===的区别

    =      赋值 ==    先判断类型,在判断值,可以做类型转换 ===  恒等判断

  4. A6. JVM 垃圾回收算法(GC 算法)

    [概述] 常见的垃圾回收算法有:标记-清除算法.复制算法.标记-整理算法.分代收集算法. [标记-清除算法] 标记-清除算法是最基础的收集算法,如同它的名字一样,算法分为 “标记” 和 “清除” 两个 ...

  5. windows10下win+R快速打开程序

    按下win+R进入运行窗口,输入应用程序名称按下回车键 即可打开该应用,若提示“windows找不到文件”,请看下一步 可以采用建立统一的目录管理,新建目录“F:/local/bin” 将新建目录的路 ...

  6. swift--字符串替换/过滤/切割

    //替换 var ReplaceString = "http://www.aimonkey.cn"; var FilterReplace = ReplaceString.strin ...

  7. 洛谷 2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm

    [题解] 就是基环外向树森林找环,然后从环向外统计size就可以了. #include<cstdio> #include<cstring> #include<algori ...

  8. layui laypage 当前页刷新问题

    困扰了好几天的问题,终于找到答案了 在执行完代码后添加下面的代码实现当前页的刷新 $(".layui-laypage-btn").click(); 在解决问题的过程中,其实已经注意 ...

  9. log4j.properties配置内容的理解

    一直知道log4j是用来记录日志的,但一直没去看log4j到底是怎么用的,这两天看了几个log4j.properties配置语句详解的帖子,在这里简陋地记录一下. 在完全不知道log4j怎么用的时候, ...

  10. 【Codeforces 682C】Alyona and the Tree

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 设dis[v]表示v以上的点到达这个点的最大权值(肯定是它的祖先中的某个点到这个点) 类似于最大连续累加和 当往下走(x,y)这条边的时候,设 ...