
新增一个专门的"鼠标监听器"类,或者直接在你现有的类中实现"鼠标监听器".具体做法是在类声明语句中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()
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)