请原谅模糊的问题标题,但通常我不做这种事情。所以我有以下问题:
我正在为特定应用程序设计一个弹出菜单,其中每个菜单项都与某个操作相关联:
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
用于此类任务的地方,您希望在其中添加菜单项并将它们与某些操作相关联。实际上,我想要的不仅仅是两个这样的动作,而是几十个。
问题是cleanup
事情。cleanup
应该在选择了这些操作中的任何一个之后。这意味着,如果我以上述方式继续,我将不得不cleanup()
为每个AbstractAction
.
是否有任何(简单/优雅/漂亮)的方式或模式来避免cleanup()
一遍又一遍地写作?即是否有可能设计一些只会获得动作并在执行后自动调用的东西cleanup
?