java - 如何使一些 Action 依赖于另一个 Action 的完成?

标签 java swing action actionlistener synchronized

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 是否为空的代码。如果不为空,则进行搜索...

问题 是——我认为——pasteActionsearchAction 被同时调用。因此,无论 pasteAction 是否已完成其工作,都会调用 searchAction。因此,当调用 searchAction 来检查 JTextField 内容时;它发现它是空的!

如何使 searchAction 依赖于 pasteAction 的完成?

最佳答案

一个选择是制作一个通用的 Action 实现,它接收一系列要连续执行的操作。然后遍历该列表,一次调用一个。现在使用该新实现并将其添加为 Action 监听器。

关于java - 如何使一些 Action 依赖于另一个 Action 的完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35225542/

相关文章:

java - ComboBox 作为 JTable 的 CellRenderer

php - WordPress 删除操作不起作用

java - httpclient、DefaultHttpClient、HttpPost、BasicNameValuePair、NameValuePair 已弃用

java - 子线程返回值

java - 接口(interface)内的 toString、hashcode 和 equals 方法

java - 退出时如何调用方法?

swing - 从 Scala + Swing 应用程序返回一个值

ios - 在 Swift 中单击 TableView 的单元格时如何调用(显示)另一个 View Controller

java - 将 ImageIcon 替换为按下的 JButton

java - 在构造函数中调用可重写的方法