在 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/