怎么在子类中消耗掉父类中定义的某个事件?

Yanbin_Q 2003-10-16 10:45:10
子类中怎么把父类注册的监听器在子类中取消,不发生作用,怎么在子类中消耗掉父类中定义的某个事件
//在子类中怎么把父类中的某个事件消耗掉,如下

//A.java
import javax.swing.*;
import java.awt.event.*;

class B extends JButton{
public B(){
super("Button");
this.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
System.out.println("Pressed");
}
});
}
}

class A extends B{

A(){
//在这里怎么把父类B中的Pressed事件消耗掉
//使A的实例在点击时不打印 "Pressed"
}

public static void main(String[] args){
JFrame frame=new JFrame();
frame.setSize(320,240);
A a=new A();
frame.getContentPane().add(a);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yanbin_Q 2003-10-16
  • 打赏
  • 举报
回复
谢谢,英雄所见略同啊,我和阿土仔在QQ上讨论出来的完全一样

能留下你的QQ吗?我的是1125535
或者kypfos@msn.com也行
LoveRose 2003-10-16
  • 打赏
  • 举报
回复
有一个办法你可以试试
可以在子类中调用removeMouseListener()的方法
然后再加上子类的自己的事件响应

但前提是在父类中addMouseListener()时不能采用匿名类的方式
需要有个有名称的MouseListener,然后在子类中remove.

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧