java - 使用 invokeLater 一一显示对话框

标签 java swing user-interface invokelater

在 2 个不同的 Action 监听器中,当满足某些条件时将显示一个对话框。 如果两个 Action 监听器都需要显示对话框,则会同时显示 2 个对话框。但我希望它们一一显示。

简化代码:

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JOptionPane.showMessageDialog(getTopLevelAncestor(), "dialog 1");
            }
        });

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JOptionPane.showMessageDialog(getTopLevelAncestor(), "dialog 2");
            }
        });

这 2 个“SwingUtilities.invokeLater”调用在不同的类中。

最佳答案

创建一个类来跟踪它;此类将包含要显示的对话框队列;每当对话框关闭时,队列中的第一个就会显示并从队列中删除。当另一个类需要显示对话框时,如果队列为空,则立即显示,或者插入其他队列。

关于java - 使用 invokeLater 一一显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4311203/

相关文章:

java - 在没有frame.setJMenuBar的JPanel中显示JMenu

java - iText 中的 setMargins 方法是否有效?

java - 状态 404 Jersey rest 服务与 tomcat 8

Java Swing - 知道选项卡是否已在 ChangeListener 中删除/添加

windows - GUI 使用批处理

.net - 为 Windows Forms .NET 寻找一些好的 GUI 测试框架/GUI 自动化测试工具

java - 如何让 RecyclerView onClick 在 Fragment 中工作

java - JScrollPane - 内容和滚动条未呈现

java - 使用netbeans在java中更改密码程序

c++ - 如何在 Motif 中使用颜色