
先解释一下原理性的东西,其实什么事件源、事件、侦听器,听起来相当的玄乎,在Java中一切皆为对象,所以它们也就是3类对象。
举个例子,你创建了一个按钮对象,它可以产生点击事件并将事件对象传递出去,因此它就是一个事件源。你希望在按钮被点击的时候执行一些特定的 *** 作(d个对话框什么的),那么你就需要把要做的事情提前告诉按钮对象,方式就是通过创建一个侦听器对象并把它加入到按钮点击事件的侦听序列里。
现在讲讲代码怎么写,就点击按钮这个例子来说,你只要创建一个类实现ActionListener接口即可,大部分的工作已经被封装在按钮对象的创建过程中了。
我再多罗嗦2句,事件这个概念相当有用,JMS,SOA,ESB这些当前企业应用开发中的核心技术都与它都有密切的关系,它是从设计的角度来看待已知问题,使问题的各参与者达到更加低的耦合度,Java领域已经出现了基于事件驱动设计(EDD)的框架,它将业务逻辑及业务处理器完全分离开来(不同于Spring这样的Ioc容器还存在接口依赖),通过引入线程实现了异步处理,极大地提高了系统的吞吐量,它是对传统的观察者模式的一种发展和延伸。
事件处理机制:AWT组件自身不编程处理相应的事件,面是交由事件监听器处理(事件授权处理模型)。
事件编程:用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。
事件:用户对程序的某一种功能性 *** 作。
Java中的事件主要有两种:
1.组件类事件:共六大类,均是当组件的状态发生变化时产生。
2.动作类事件:共四类。均对应用户的某一种功能性 *** 作动作。
Java中的事件类都包含在JDK的包中。
事件源:产出事件的组件。
监听器:对组件所产生的事件作出具体响应的代吗,即事件产出与处理分别由两个不同类加以编程实现。
JAVA事件响应机制
1,先自定义一个事件
public class MyEvent extends javautilEventObject{
public MyEvent(Object source)
{
super(source);
}
}
2,再自定义一个监听器
public class MyListener implements javautilEventListener{
//这里是当事件发生后的响应过程
public void EventActivated(MyEvent me)
{
Systemoutprintln("事件已经被触发");
}
}
3,以下这个类为触发事件的事件源
public class MyObject {
private Vector vectorListeners=new Vector();
public synchronized void addMyListener(MyListener ml)
{
vectorListenersaddElement(ml);
}
public synchronized void removeMyListener(MyListener ml)
{
vectorListenersremoveElement(ml);
}
protected void activateMyEvent()
{
Vector tempVector=null;
MyEvent e=new MyEvent(this);
synchronized(this)
{
tempVector=(Vector)vectorListenersclone();
for(int i=0;i<tempVectorsize();i++)
{
MyListener ml=(MyListener)tempVectorelementAt(i);
mlEventActivated(e);
}
}
}
//定义一个公用方法用于触发事件
public void test()
{
activateMyEvent();
}
}
4,测试类
public class Test {
public static void main(String[] args)
{
MyObject mo=new MyObject();
//注册该事件
moaddMyListener(new MyListener());
//触发该事件
motest();
}
}
您好,很高兴为您解答。日志文件在哪个目录,用fileinputstream读文件就行了
import javaioBufferedReader;
import javaioFile;
import javaioFileInputStream;
import javaioIOException;
import javaioInputStreamReader;
import javautilArrayList;
import javautilList;
public class FileReaderTest {
static List<String> logs = new ArrayList<String>();
public static List<String> readFile(File f) throws IOException {
if (f == null || !fexists()) {
return null;
}
List<String> list = new ArrayList<String>();
String encoding = "UTF-8";
InputStreamReader read = new InputStreamReader(new FileInputStream(f),
encoding);
BufferedReader br = new BufferedReader(read);
String line = null;
以上就是关于java的事件源、事件、侦听器全部的内容,包括:java的事件源、事件、侦听器、简述java事件处理机制、java 自定义事件的触发及监听等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)