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程序的模块化和可维护性,使代码更加清晰和易于理解。在给定的压缩包文件中,可能...
自定义时间监听器,1、设计三个要素 事件源:被监听的对象 事件对象: 事件监听器: 2. 对某个源注册一个监听器,此源便成为一个事件源,当事件源上发生某一个动作时,监听器的某个方法将会被调用执行,在执行...
总的来说,Java自定义事件的关键步骤包括:创建事件源类,定义事件接口和事件类,以及在事件源类中管理和通知监听器。通过这种方式,我们可以构建出灵活的事件驱动系统,使得程序能够对各种用户操作做出反应。在实际...
在Java编程中,自定义事件是扩展应用程序功能和实现组件间通信的重要手段。当你需要在类之间传递特定信息或触发特定行为时,自定义事件能提供极大的灵活性。本教程将深入探讨如何在Java中创建并使用自定义事件,以...
### Java GUI 事件监听知识点详解 #### 一、概述 在Java编程中,图形用户界面(GUI)的设计是一项重要的技能。对于初学者来说,掌握如何创建一个简单的界面,并且能够处理用户交互事件是非常必要的。本篇文章将...
通过这个例子,我们可以看到在Java中创建自定义事件的基本步骤:定义事件类,创建监听器接口,然后在事件源类中实现事件的发布和监听器的管理。这种模式允许我们在程序中灵活地扩展事件处理,使组件之间的通信更加...
总的来说,这个示例展示了如何在 Java 中自定义事件和监听器,以及如何在事件源中管理和分发这些事件。自定义事件扩展了 Java AWT 和 Swing 事件模型,使得开发者可以在自己的应用程序中实现更复杂的状态改变通知...
在Java编程语言中,虽然没有像C#那样的内置委托和事件机制,但开发者可以通过自定义的方式来模拟实现事件处理。这通常涉及到观察者模式(Observer Pattern)的应用,它是一种行为设计模式,允许对象在其状态改变时...
标题提到的"keycloak-kafka-event-listener"是一个自定义的事件监听器,它的主要功能是将Keycloak中的所有事件实时地发布到Apache Kafka这个分布式流处理平台。 Apache Kafka是一个高吞吐量、分布式的发布订阅消息...
在Java编程中,监听器(Listener)是一种关键的机制,它允许程序对特定事件进行响应。这个例子将探讨如何在Java中使用监听器,特别是事件监听器,它们是Java Swing和Java AWT库中用于图形用户界面(GUI)交互的核心...
总的来说,自定义Java的Queue队列需要对数据结构有深入的理解,并根据具体的应用场景来设计和实现。这包括选择合适的基础数据结构(如ArrayList、LinkedList等),考虑性能和并发访问等因素,以及正确实现Queue接口...
7. **事件监听**:添加事件监听器来响应用户交互。例如,为按钮添加点击事件: ```java button.addActionListener(e -> System.out.println("按钮被点击了")); ``` 8. **最后,显示窗口**:使用`setVisible`方法...
Java自定义注解是Java平台...以上就是关于Java自定义注解、标签库、监听器和JUnit简单测试的知识点概述。这些技术是构建可扩展、可维护的Java应用程序的关键组成部分,理解并熟练运用它们能够提升代码质量和开发效率。
6. **解除注册**:在不再需要监听事件的地方,记得解除注册监听器,以避免内存泄漏。 在`android-eventlisteners-master`这个项目中,可能包含了示例代码,展示了如何创建和使用自定义事件监听器。通常,你会看到一...
Java通过事件监听器和事件适配器机制来处理这些交互,开发者需要编写对应的事件处理器方法。 3. **数据验证**:在用户填写表单时,系统往往需要对输入的数据进行验证,确保其符合预设的规则,如非空检查、格式校验...
本文将深入探讨在Java中使用SWT进行自定义控件的开发。 ### 1. SWT概述 SWT是一个开源的Java库,它的目标是提供与原生GUI库(如Windows的Win32 API,Mac OS的Cocoa,Linux的GTK+)类似的性能和功能。SWT使用JNI...
在Java编程语言中,事件监听和图形绘画是两个重要的概念,尤其在开发用户界面(UI)应用程序时。这里我们将深入探讨这两个主题,并结合"www.pudn.com.txt"和"国旗"这两个文件名称来理解它们如何关联。 首先,让我们...
总之,Windchill的事件监听机制是系统灵活性和可扩展性的重要组成部分,它允许开发者通过自定义代码响应系统内部的各种事件,从而实现业务逻辑的自动化和个性化。理解和掌握这一机制对于深入理解和优化Windchill系统...