「java自定义事件监听」java监听事件和处理事件由什么完成

博主:adminadmin 2022-11-23 07:56:09 167

本篇文章给大家谈谈java自定义事件监听,以及java监听事件和处理事件由什么完成对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中addMouseListener(this)中的this是指啥?怎么好多方法都有this ,this具体指啥,求详解!!

this是指您正在编写的这个类,在软件运行时(运行时)所实例化的对象。

Swing程序可以说是基于“事件”的程序。所谓“事件”是指程序运行时所发生的事情,包括图形界面的用户交互操作、Swing组件内部对某事件的连续反应所产生的其他事件、某种情况下所发生的自定义事件。

运行时的事件是一个事件对象,它有三个要素:1、事件源是谁,也就是说是在哪个Swing组件中产生的这个事件;2、事件内部所包含的数据,我们可以将一些重要数据封装在事件中;3、有那些监听器对象负责处理这个事件。

总体来讲,一个事件只有一个事件源,可以有0或多个负责处理这个事件的监听器。

事件源负责向外抛出事件,抛出事件就是在告知添加到此事件源的所有监听器,这个事件已经被抛出,已被添加到此事件源负责处理该事件的监听器应该开始处理该事件了。

综上所述,只有将监听器添加到事件源上,当事件被事件源抛出后,才可能会有监听器处理此事件。从你的例子来看,这是在向当前类(事件源)添加一个鼠标事件监听器(此监听器还是当前类的实例)。

重复一下,只有将监听器添加到事件源上,当事件被事件源抛出后,才可能会有监听器处理此事件。

你必须清晰认识到:事件源、事件、监听器是围绕事件的三个不同概念。

作为初学者,很少有机会手动写抛出事件的代码。比如鼠标事件作为Java内部定义好的事件,当用户鼠标在界面中执行任何动作(如移位、点击、拖动等等等等),都会由Java已经封装好的、支持鼠标事件的组件作为事件源,向外抛出鼠标事件。组件(事件源)抛出事件后,应该由添加到此事件源的鼠标事件监听器处理此事件。

一般来讲,Java已经封装好了很多内置事件监听器的接口和实现类,要处理某事件,必须创建一个监听器类,使其实现处理此事件监听器的接口或继承处理此事件监听器的实现类。

java事件监听器传参

可以采用内部类的方式,这样就不用考虑传参的问题,可以直接访问外部类的成员变量,如果一定要传参,那么就自定义一个监听器

class MyListener implements ActionListener{

    private String str;

    public MyListener(String str){

        this.str = str;

    }

}

在程序中(java,C#)监听器是啥玩意?

监听器即listen,指的是被动监听,举例来说我有一个温度计,它一直监听着温度,如果温度发生了变化水银柱的高度就发生变化,这里温度计是一个监听器,温度变化是一个事件,当这个时间出发了监听器时,则得到水银柱高度变化这么个结果,你懂了么?

java中的事件监听是怎么回事

不是通过线程实现的,它是通过一种注册--通知机制实现的。在java的设计模式中,有一种模式叫:观察者模式,和这个类似。举个例子,本例子是一个简单的监听当数据发生变化时要做的操作。 1,我们先定义一个接口,可以让多个监听者实现 public interface IDataListen {public void update(Object event,Object msg);}2,实现一监听者 public class DataListen implements IDataListen{ @Override public void update(Object event, Object arg) { // TODO Auto-generated method stub System.out.println("数据发生了变化"); }}3,被监听者 public class DataManager{ private ListIDataListen listenList = new ArrayList(); public void notifyListen(Object event,Object msg){ for(IDataListen dataListen : listenList){ dataListen.update(null, null); } } public void addListen(IDataListen dataListen){ listenList.add(dataListen); } public void updateData(Object msg){ this.notifyListen(null, msg); } public static void main(String[] args) { DataManager dataManager = new DataManager(); IDataListen dataListen1 = new DataListen(); ...

java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之,并作出反应?

线程a是作为事件源,那么线程a这个类就必须提供一个可以增加监听器的方法,就像GUI编程中的addActionListener这个样的方法。线程a这个类里面是有一个专门存放监听器的一个容器,例如是list。然后你 增加监听器的方法就是把监听器放进这个容器里面。你用一个监听器去监听一个事件的发生,就可以在线程a这个类中,写一个产生事件的一段代码,然后每当产生一个事件之后,去遍历list,去调用监听器的对于这个事件的处理方法,这样子就可以了。这应该就是java中的事件模式。

java怎样监听一个值是否发生了变化,具体代码

java 自定义监听器监听属性变化

import java.util.EventObject;

public class MyEvent extends EventObject

{

private Object obj;

private String sName;

public MyEvent(Object source,String sName)

{

super(source);

this.obj=source;

this.sName=sName;

}

public Object getObj()

{

return obj;

}

public String getsName()

{

return sName;

}

}

import java.util.EventListener;

public interface MyEventListener extends EventListener

{

public void handleEvent (MyEvent me);

}

import java.util.Iterator;

import java.util.Vector;

import demo.DemoEvent;

public class MyEventSource

{

private Vector list=new Vector();

private String sName = "";

public MyEventSource()

{

super();

}

public void addMyEventListener(MyEventListener me)

{

list.add(me);

}

public void deleteMyEventListener(MyEventListener me)

{

list.remove(me);

}

public void notifyMyEvent(MyEvent me)

{

Iterator it=list.iterator();

while(it.hasNext())

{

((MyEventListener) it.next()).handleEvent(me);

}

}

public void setName(String str)

{

boolean bool = false;

if (str == null sName != null)

bool = true;

else if (str != null sName == null)

bool = true;

else if (!sName.equals(str))

bool = true;

this.sName = str;

// 如果改变则执行事件

if (bool)

notifyMyEvent(new MyEvent(this, sName));

}

public String getsName()

{

return sName;

}

}

public class Test implements MyEventListener

{

public Test()

{

MyEventSource mes = new MyEventSource();

mes.addMyEventListener(this);

mes.setName("niu");

}

public static void main(String args[])

{

new Test();

}

public void handleEvent(MyEvent me)

{

System.out.println(me.getSource());

System.out.println(me.getsName());

}

}

关于java自定义事件监听和java监听事件和处理事件由什么完成的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。