Action pasteAction = new DefaultEditorKit.PasteAction();
JPopupMenu popMenu = new JPopupMenu();
menuItem = new JMenuItem();
menuItem.addActionListener(pasteAction);
menuItem.addActionListener(searchAction);
menuItem.setText("Paste & Search");
显示
popMenu
菜单;用鼠标右键单击JTextField
pasteAction
已准备就绪。searchAction
具有用于检查JTextField
是否为空的代码。如果不为空,则进行搜索...问题是-我认为-
pasteAction
和searchAction
同时被调用。因此,无论searchAction
是否完成其工作,都将调用pasteAction
。因此,当调用searchAction
来检查JTextField
内容时;它发现它是空的!如何使
searchAction
依赖于pasteAction
的完成? 最佳答案
一种选择是制作一个通用的Action实现,该实现接受一系列要串行执行的操作。然后遍历该列表,一次调用一个。现在,使用该新实现并将其添加为动作侦听器。