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

java自定义事件监听

阅读更多
       Java自定义事件监听
一.将事件处理封装为特定事件的好处
  1.更好的体现Java面向对象的思想
   和给按钮等组件添加监听器一样,将鼠标点击等信息事件封装,达到面向对象的思想.
  2.使代码更加清晰,分工更加明确
   将一些事件处理封装为监听事件,使各个代码块各司其职,只处理特定的事件,这样便达到了代码功能的单一性.
自定义事件监听
 
二.实现界面上标签和按钮所显示的信息周期性改变
   类之间的关系
  


  三.代码如下
NewsNorm接口
package eventListener;
/**
 * 发送消息的格式
 * @author Andrew
 *
 */
public interface NewsNorm {
	public byte getType();
	public String getText();
}

TextNews类实现NewsNorm接口
package eventListener;
/**
 * 发送文本信息
 * @author Andrew
 *
 */
public class TextNews implements NewsNorm{

	private String str;
	public TextNews(String str){
		this.str = str;
	}
	public byte getType() {
		return 0;
	}
	public String getText() {
		return str;
	}

}

ShowNews接口
package eventListener;
/**
 * 组件显示消息的接口
 * @author Andrew
 *
 */
public interface ShowNews {
	public void processNews(NewsNorm n);
}


LableModule自定义标签类
package eventListener;

import javax.swing.JLabel;

/**
 * 自定义标签组件
 * @author Andrew
 *
 */
public class LableModule extends JLabel implements ShowNews{

	public void processNews(NewsNorm n) {
		String str = n.getText();
		this.setText(str);
	}

}

ProThread线程类
package eventListener;

import java.util.ArrayList;
import java.util.List;

/**
 * 处理消息的线程
 * @author Andrew
 *
 */
public class ProThread extends Thread{
	private List<ShowNews> list = new ArrayList<ShowNews>();
	
	public void addNewsListener(ShowNews sh){
		list.add(sh);
	}
	public void run(){
		int num = 1;
		while(true){
			String str = "消息"+num;
			for(int i=0; i<list.size(); i++){
				NewsNorm n = new TextNews(str);
				ShowNews sh = list.get(i);
				sh.processNews(n);
			}
			num ++;
			try {
				Thread.sleep(600);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

自定义按钮类
package eventListener;

import java.awt.Dimension;

import javax.swing.JButton;

/**
 * 自定义按钮监听事件
 * @author Andrew
 *
 */
public class ButtonModule extends JButton implements ShowNews{

	public void processNews(NewsNorm n) {
		String str = n.getText();
		this.setText(str);
		this.setPreferredSize(new Dimension(100,30));
	}

}


程序入口
package eventListener;

import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JFrame;

/**
 * 程序入口
 * @author Andrew
 *
 */
public class Main {

	/**
	 * 主函数
	 */
	public static void main(String[] args) {
		Main m = new Main();
		m.setUpFrame();
	}
	private void setUpFrame(){
		JFrame frame = new JFrame("自定义事件监听");
		frame.setSize(new Dimension(400,300));
		frame.setLayout(new FlowLayout());
		//实例化事件处理线程对象
		ProThread pr = new ProThread();
		//实例化自定义标签对象
		LableModule la = new LableModule();
		//实例化自定义按钮对象
		ButtonModule bu = new ButtonModule();
		
		pr.addNewsListener(bu);
		pr.addNewsListener(la);
		//启动消息处理线程
		pr.start();
		
		frame.add(la);
		frame.add(bu);
		frame.setVisible(true);
	}
}

四.程序运行截图



  • 大小: 33.9 KB
  • 大小: 28.2 KB
  • 大小: 18.8 KB
分享到:
评论

相关推荐

    JAVA 用户自定义事件监听完整例子

    JAVA 用户自定义事件...JAVA 用户自定义事件监听完整例子 JAVA 用户自定义事件监听完整例子 很多介绍用户自定义事件都没有例子,或是例子不全,下面写了一个完整的例子,并写入了注释以便参考,完整的实例源代码如下

    java自定义事件

    综上所述,Java自定义事件的核心在于创建自定义事件类、事件源以及事件监听器,并通过事件源来触发和传播事件。这种方式增强了Java程序的模块化和可维护性,使代码更加清晰和易于理解。在给定的压缩包文件中,可能...

    自定义事件的监听器

    自定义时间监听器,1、设计三个要素 事件源:被监听的对象 事件对象: 事件监听器: 2. 对某个源注册一个监听器,此源便成为一个事件源,当事件源上发生某一个动作时,监听器的某个方法将会被调用执行,在执行...

    JAVA自定义事件详解

    总的来说,Java自定义事件的关键步骤包括:创建事件源类,定义事件接口和事件类,以及在事件源类中管理和通知监听器。通过这种方式,我们可以构建出灵活的事件驱动系统,使得程序能够对各种用户操作做出反应。在实际...

    教你如何在java中自定义事件

    在Java编程中,自定义事件是扩展应用程序功能和实现组件间通信的重要手段。当你需要在类之间传递特定信息或触发特定行为时,自定义事件能提供极大的灵活性。本教程将深入探讨如何在Java中创建并使用自定义事件,以...

    java GUI 事件监听

    ### Java GUI 事件监听知识点详解 #### 一、概述 在Java编程中,图形用户界面(GUI)的设计是一项重要的技能。对于初学者来说,掌握如何创建一个简单的界面,并且能够处理用户交互事件是非常必要的。本篇文章将...

    自定义事件(java).doc

    通过这个例子,我们可以看到在Java中创建自定义事件的基本步骤:定义事件类,创建监听器接口,然后在事件源类中实现事件的发布和监听器的管理。这种模式允许我们在程序中灵活地扩展事件处理,使组件之间的通信更加...

    JAVA自定义事件详解.ppt

    总的来说,这个示例展示了如何在 Java 中自定义事件和监听器,以及如何在事件源中管理和分发这些事件。自定义事件扩展了 Java AWT 和 Swing 事件模型,使得开发者可以在自己的应用程序中实现更复杂的状态改变通知...

    java里的自定义实现事件

    在Java编程语言中,虽然没有像C#那样的内置委托和事件机制,但开发者可以通过自定义的方式来模拟实现事件处理。这通常涉及到观察者模式(Observer Pattern)的应用,它是一种行为设计模式,允许对象在其状态改变时...

    keycloak-kafka-event-listener:自定义事件监听器,将所有Keycloak事件发布到Kafka

    标题提到的"keycloak-kafka-event-listener"是一个自定义的事件监听器,它的主要功能是将Keycloak中的所有事件实时地发布到Apache Kafka这个分布式流处理平台。 Apache Kafka是一个高吞吐量、分布式的发布订阅消息...

    java一个监听器的例子

    在Java编程中,监听器(Listener)是一种关键的机制,它允许程序对特定事件进行响应。这个例子将探讨如何在Java中使用监听器,特别是事件监听器,它们是Java Swing和Java AWT库中用于图形用户界面(GUI)交互的核心...

    java 自定义Queue队列

    总的来说,自定义Java的Queue队列需要对数据结构有深入的理解,并根据具体的应用场景来设计和实现。这包括选择合适的基础数据结构(如ArrayList、LinkedList等),考虑性能和并发访问等因素,以及正确实现Queue接口...

    java自定义JFrame风格窗体

    7. **事件监听**:添加事件监听器来响应用户交互。例如,为按钮添加点击事件: ```java button.addActionListener(e -&gt; System.out.println("按钮被点击了")); ``` 8. **最后,显示窗口**:使用`setVisible`方法...

    java自定义注解\标签库\监听\junit简单测试

    Java自定义注解是Java平台...以上就是关于Java自定义注解、标签库、监听器和JUnit简单测试的知识点概述。这些技术是构建可扩展、可维护的Java应用程序的关键组成部分,理解并熟练运用它们能够提升代码质量和开发效率。

    android-eventlisteners:在Android中创建自定义事件监听器

    6. **解除注册**:在不再需要监听事件的地方,记得解除注册监听器,以避免内存泄漏。 在`android-eventlisteners-master`这个项目中,可能包含了示例代码,展示了如何创建和使用自定义事件监听器。通常,你会看到一...

    java自定义表单系统

    Java通过事件监听器和事件适配器机制来处理这些交互,开发者需要编写对应的事件处理器方法。 3. **数据验证**:在用户填写表单时,系统往往需要对输入的数据进行验证,确保其符合预设的规则,如非空检查、格式校验...

    java swt自定义控件

    本文将深入探讨在Java中使用SWT进行自定义控件的开发。 ### 1. SWT概述 SWT是一个开源的Java库,它的目标是提供与原生GUI库(如Windows的Win32 API,Mac OS的Cocoa,Linux的GTK+)类似的性能和功能。SWT使用JNI...

    gq.zip_GQ_java 事件_监听绘画简介

    在Java编程语言中,事件监听和图形绘画是两个重要的概念,尤其在开发用户界面(UI)应用程序时。这里我们将深入探讨这两个主题,并结合"www.pudn.com.txt"和"国旗"这两个文件名称来理解它们如何关联。 首先,让我们...

    windchill交流第三篇:Windchill中的事件监听

    总之,Windchill的事件监听机制是系统灵活性和可扩展性的重要组成部分,它允许开发者通过自定义代码响应系统内部的各种事件,从而实现业务逻辑的自动化和个性化。理解和掌握这一机制对于深入理解和优化Windchill系统...

Global site tag (gtag.js) - Google Analytics