java 自定义组件状态改变事件_Java-Vaadin 7在组件之间触发自定义事件

本文介绍了Java中事件监听的基础概念,包括触发事件的组件、自定义事件类、监听器接口以及监听器的实现。通过一个调度器类,演示了如何添加、移除监听器以及分发事件。在事件发生时,调度器会遍历事件监听器列表并调用相应方法。读者可以了解如何在Java应用中实现事件驱动的通信机制。
摘要由CSDN通过智能技术生成

您需要什么:

1.触发事件的组件

2.自定义事件类

3.监听器界面

4.和一个监听器实现

从1开始的组件需要具有事件侦听器列表,以及方法:addListener; removeListener;和dispatchEvent. dispatchEvent方法将遍历事件侦听器列表并执行一些方法(请参见4:侦听器实现).该方法具有一个事件对象作为参数(请参见2:自定义事件类).

1的基本代码:

protected List listeners;

protected synchronized void dispatchEvent(MyEvent event) {

if (listeners != null) {

for (MyListener listener : listeners) {

listener.myMethod(event);

}

}

}

public synchronized void addListener(MyListener listener) {

if (listeners == null) {

listeners = new ArrayList();

}

listeners.add(listener);

}

public synchronized void removeListener(MyListener listener) {

if (listeners == null) {

listeners = new ArrayList();

return;

}

listeners.remove(listener);

}

2的基本代码:

public class MyEvent {

protected String eventType;

public MyEvent(String eventType) {

this.eventType = eventType;

}

//getters and setters

}

3的基本部分

public interface MyListener {

public void doSomething(MyEvent event);

}

代码4(监听器实现)

public class MyImplementation implements MyListener {

@Override

public void doSomething(myEvent event) {

//do something concretes here

}

}

代码流如何工作:

在进行一些交互之后,调度程序类将“通知”每个事件侦听器发生了某些事情.

dispatchEvent(new MyEvent("ADD_USER"));

在要接收事件的类中,需要实例化调度程序类和侦听器实现类,并将侦听器添加到调度程序的列表中:

MyDispatcher disp = new MyDispatcher();

MyImplementation myImpl = new MyImplementation();

// Then add the event-listener to the dispatcher:

disp.addListener(myImpl);

当然,这些类中的某些可以是内部类,并且可以简化或扩展代码,但这是总的想法.这也只是普通的Java,与Vaadin无关.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值