如果有两个类Class A
和Class B
,则B是A的子类...如果我的A类(超类)有JButton
且ActionListener
这是由匿名内部类实现的,如何覆盖按钮在子类中的作用?
答案 0 :(得分:3)
嗯,你可以让监听器调用某种受保护的方法:
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
doStuff();
}
});
然后你可以覆盖子类中的doStuff
。这比看待事件更加简单。
答案 1 :(得分:1)
我不确定您的代码是什么样的,但这是一个相当通用的“解决方案”(未经测试):
for (ActionListener al : super.getThatButton().getActionListeners())
{
super.getThatButton().removeActionListener(al);
}
然后添加一个新的ActionListener。我认为这就是你可能在寻找的东西,但我不确定。我只是添加另一个ActionListener或使其使用Actions而不是ActionListeners。
答案 2 :(得分:1)
您唯一的选择是删除当前ActionListener
并添加新的{{1}}。根据定义,您无法扩展匿名内部类:它是匿名的。