如果有两个类,Class A
并且Class B
,B 是 A 的子类...如果我的 A 类(超类)有一个JButton
由ActionListener
匿名内部类实现的,我如何覆盖按钮在子类中的作用?
问问题
9478 次
3 回答
4
嗯,您可以让侦听器调用某种受保护的方法:
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
doStuff();
}
});
然后你可以doStuff
在子类中覆盖。这似乎比处理事件更简单。
于 2010-03-13T19:41:59.613 回答
1
我不太确定您的代码是什么样子,但这是一个相当通用的“解决方案”(未经测试):
for (ActionListener al : super.getThatButton().getActionListeners())
{
super.getThatButton().removeActionListener(al);
}
然后添加一个新的 ActionListener 。我认为这就是您可能正在寻找的东西,但我不确定。我只是添加另一个 ActionListener 或让它使用 Actions 而不是 ActionListeners。
于 2010-03-13T18:00:31.590 回答
1
您唯一的选择是删除当前ActionListener
并添加一个新的。您不能根据定义扩展匿名内部类:它是匿名的。
于 2010-03-13T18:00:37.230 回答