あいまいな質問タイトルで申し訳ありませんが、通常、私はそのようなことはしません。だから私は次の問題があります:
各メニュー項目が特定のアクションに関連付けられている特定のアプリの popupmenu を設計しています。
public class CanvasMenu extends JPopupMenu {
public CanvasMenu(){
this.add(new AbstractAction("Do some operation") {
@Override
public void actionPerformed(ActionEvent arg0) {
doSomeStuff1();
cleanup(); // has to be done after every menu operation
}
});
this.add(new AbstractAction("Other operation") {
@Override
public void actionPerformed(ActionEvent e) {
doSomeOtherStuff();
cleanup(); // has to be done after every menu operation
}
});
}
}
AbstractAction
メニュー項目を追加して何らかのアクションに関連付けるタスクに使用される場所を読みました。実際には、そのようなアクションが 2 つだけではなく、数十個必要です。
問題はcleanup
物です。これらのアクションのいずれかcleanup
が選択された後である必要があります。これは、上記の方法を続けると、それぞれについて書く必要があることを意味します。cleanup()
AbstractAction
何度も何度も書くのを避ける (簡単/エレガント/素敵な) 方法やパターンはcleanup()
ありますか? つまり、アクションのみを取得し、実行後に自動的に呼び出す何かを設計することは可能cleanup
ですか?