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 プロジェクト (多くの匿名の ActionListeners を使用) に実装しようとしています。したがって、すべての匿名actionPerformed()
に独自のコードを追加する (カーソルを変更する) 必要があるとしたら、気が狂ってしまいます。
アイデアや提案はありますか?