java中“label”文字如何添加点击、执行反应?

java中“label”文字如何添加点击、执行反应?,第1张

实现MouseListener接口.

新增一个专门的"鼠标监听器"类,或者直接在你现有的类中实现"鼠标监听器".具体做法是在类声明语句中implements MouseListener.如下:

public class MouseAdp implements MouseListener{

public MouseAdp(){}

public void mouseClicked(MouseEvent e) {

/**鼠标点击事件(包括按下和d起两个动作)处理方法.**/

System.out.println("你点了我!")

}

public void mouseEntered(MouseEvent e) {

/**鼠标移到组件上方法时事件处理方法.**/}

public void mouseExited(MouseEvent e) {

/**鼠标移开组件时事件处理方法.**/}

public void mousePressed(MouseEvent e) {

/**鼠标在组件上按下(但没d起)时事件处理方法.**/}

public void mouseReleased(MouseEvent e) {

/**鼠标在组件上d起事件处理方法.**/}

}

然后在你的JLabel实例上,作用这个监听器,如:

JLabel lab = new JLabel("点我")

lab.addMouseListener(new MouseAdp())

JAVA事件响应机制

1,先自定义一个事件

public class MyEvent extends java.util.EventObject{

public MyEvent(Object source)

{

super(source)

}

}

2,再自定义一个监听器

public class MyListener implements java.util.EventListener{

//这里是当事件发生后的响应过程

public void EventActivated(MyEvent me)

{

System.out.println("事件已经被触发")

}

}

3,以下这个类为触发事件的事件源

public class MyObject {

private Vector vectorListeners=new Vector()

public synchronized void addMyListener(MyListener ml)

{

vectorListeners.addElement(ml)

}

public synchronized void removeMyListener(MyListener ml)

{

vectorListeners.removeElement(ml)

}

protected void activateMyEvent()

{

Vector tempVector=null

MyEvent e=new MyEvent(this)

synchronized(this)

{

tempVector=(Vector)vectorListeners.clone()

for(int i=0i<tempVector.size()i++)

{

MyListener ml=(MyListener)tempVector.elementAt(i)

ml.EventActivated(e)

}

}

}

//定义一个公用方法用于触发事件

public void test()

{

activateMyEvent()

}

}

4,测试类

public class Test {

public static void main(String[] args)

{

MyObject mo=new MyObject()

//注册该事件

mo.addMyListener(new MyListener())

//触发该事件

mo.test()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11418185.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存