请问在java中如何自定义事件,谢谢!! 比如在一个线程中接收数据,如果接收到符合的数据,将事件抛出到主程序中执行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我的一个例子,你可以看一下public class MyEvent extends EventObject { private boolean flag = false; public MyEvent(Object source,boolean check){ super(source); flag = check; } public void setFlag(boolean flag){ this.flag = flag; } public boolean getFlag(){ return this.flag; }} //自定义的事件监听器public interface MyEventListener extends EventListener{ public void Succeed(MyEvent event);}//在定时器执行时根据OPERATION的不同执行情况FIRE不同FLAG的EVENTprivate class RemindTask extends TimerTask{ public void run() { if(Operation()){ fireEventReceived(true); } else{ fireEventReceived(false); } } }protected void fireEventReceived(boolean flag) { Object[] listeners = listenerList.getListenerList(); MyEvent event = new MyEvent(this, flag); for (int i = listeners.length - 2; i >= 0; i -= 2) { if (listeners[i] == MyEventListener.class) { ( (MyEventListener) listeners[i +1]).Succeed(event); } } } 使用时你需要实现MyEventListener接口,并实现里面的SUCCEED方法,建议你先看书再看代码. 对于不符合要求的数据,在代码中直接写上抛出异常:throw YourException("不符合要求");YourException 是你自己根据需要继承一些异常的类(包括异常基类).比如:在对数据库操作,你可以继承SQLException 生成,当然自己写也行. 所谓“事件”,在Java中是通过接口实现的。 急:Excel问题 java 如何把一段48位mac地址解析为对应的32位IP地址? 请教大侠 踏入JAVA的行列,散分100 substance 中jcombox的编辑框退格键不能删除内容 求救:使用JNI,报错:An unrecoverable stack overflow has occurred 关于JB的简单问题,谢谢. 在一台计算机上能进行RMI程序的调试和运行吗? 一个vector的问题! 我迷茫-开始阶段我可以用java做点什么? 添加自定义的事件 怎样实现从本机上传文件到服务器(从服务器下载文件到本机)
public class MyEvent extends EventObject {
private boolean flag = false;
public MyEvent(Object source,boolean check){
super(source);
flag = check;
} public void setFlag(boolean flag){
this.flag = flag;
} public boolean getFlag(){
return this.flag;
}
}
public interface MyEventListener extends EventListener
{
public void Succeed(MyEvent event);
}//在定时器执行时根据OPERATION的不同执行情况FIRE不同FLAG的EVENT
private class RemindTask extends TimerTask{
public void run() {
if(Operation()){
fireEventReceived(true);
}
else{
fireEventReceived(false);
}
}
}protected void fireEventReceived(boolean flag) {
Object[] listeners = listenerList.getListenerList();
MyEvent event = new MyEvent(this, flag);
for (int i = listeners.length - 2; i >= 0; i -= 2) {
if (listeners[i] == MyEventListener.class) {
( (MyEventListener) listeners[i +1]).Succeed(event);
}
}
}