ActionListeners(具有匿名实现)通常添加如下:
someobject.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
...
}
});
但我想在每个“actionPerformed”事件之前和之后执行我自己的代码。因此,假设我在自己的类中实现了 ActionListener 接口,例如:
public class MyOwnActionListener implements ActionListener{
public void actionPerformed(final ActionEvent ae) {
// own code
super.actionPerformed(ae); // I know, this makes no sense, cause ActionListener is an interface
// own code
}
}
我希望能够做类似的事情:
someobject.addActionListener(new MyOwnActionListener(){
public void actionPerformed(ActionEvent ae){
...
}
});
在我的班级中,actionPerformed
应该执行匿名内的代码而不是super.actionPerformed(ae);
. 我知道,我不能为 MyOwnActionListener 提供匿名实现,因为它是一个类而不是一个接口,而且它super.actionPerformed(ae);
不起作用,因为我想调用继承类的方法,而不是超类 - 但怎么能我重新设计了我的代码以尽可能少地更改 ActionListener 的匿名实现?
背景:我正在尝试在一个非常庞大的 java 项目(有很多匿名 ActionListener)上实现忙碌光标管理。因此,如果我必须将自己的代码(更改光标)添加到每个匿名用户actionPerformed()
,我会发疯的。
有什么想法或建议吗?