寒假打卡day15

今天做了什么

操作
对于每个您需要的操作,您应该有一个公用方法,例如:

public void start(){
if(thread==null){
thread=new Thread(this);
thread.start();
}
}
您为操作写的方法应该在无须期待用户创建连接或设置很多特性的情况下独立操作。 例如,如果您写了一个音频 Bean,您希望通过播放操作处理打开声音的所有步骤、完成您需要的所有设置并播放声音。同样,即使声音未播放,停止操作也应起作用。


事件
对于您需要的每个事件或事件设置,您应该定义事件和侦听器类。对于此例,查看 FireworksEvent.java 源文件以及 Fireworks.java 文件。此事件类的源应该如同这样:

import java.awt.*;
import java.util.*;
publicclassFireworksEvent extends EventObject{
public static final int EXPLODED = 1;
int id = 0;
public FireworksEvent(Component source, int id){
super(source);
id = id;
}
public int getID(){
return id;
}
}
您应该为此事件设置中的每个事件定义一个公用静态结束事件标识符,例如在此例子中的 EXPLODED。

对于侦听器类的源,查看 FireworksListener.java源文件:

import java.util.*;
public interface FireworksListener extends EventListener{
public abstract void exploded(FireworksEvent e);
}
您应该为此事件设置中的每个事件定义一个公用抽象方法,例如在此例子中的 exploded。 而且,侦听器类必须扩展 EventListener ,以使 JAR 向导能够找到它。

然后,如果由 bean 类播送事件,它必须跟踪侦听事件的对象。要这样做,您需要定义侦听器实例变量以及 addListener 和 removeListener 方法。返回 Fireworks.java 源,例如,您将查看到:

private Vector listeners = new Vector();
public void addFireworksListener(FireworksListener f){
listeners.addElement(f);
}
public void removeFireworksListener(FireworksListener f){
listeners.removeElement(f);
}
最后,bean 类需要以正确的次数将事件实际播送到所有的侦听器。要这样做,您需要定义 processEvent 方法并以适当的次数调用它,例如:

public void processFireworksEvent(FireworksEvent e){
for (Enumeration enum = listeners.elements(); enum.hasMoreElements(); )
((FireworksListener)enum.nextElement()).exploded(e);
}
public void run(){
processFireworksEvent(new FireworksEvent(this, FireworksEvent.EXPLODED));

posted @   夏季彼岸德  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示