java - 如何避免两个进程并行运行

标签 java process jdialog

if (isToCloseTab && selectedTab > -1) {                    
                if (FSView.tabs[selectedTab-1].isChanged()) {
                    String tabName = tabbedPane.getTabTitleAt(selectedTab);
                    JFrame mainFrame = FSApp.getApplication().getMainFrame();
                    savefiledialog = new SaveFileDialog(mainFrame, selectedTab, tabName);
                    savefiledialog.setLocationRelativeTo(mainFrame);
                    FSApp.getApplication().show(savefiledialog);
                }
                if (closeTab) {
                    tabbedPane.removeTabAt(selectedTab);
                }

上面的代码在关闭选项卡时打开一个对话框。根据对话框的用户响应,我决定是否关闭该选项卡。但我面临的问题是该选项卡在对话框响应之前自行关闭。当对话框出现时,选项卡将关闭,而不等待对话框的响应。我希望只有当对话框关闭时,才应根据条件关闭选项卡。你能帮我一下吗?
-提前致谢

最佳答案

首先要注意的是,“进程”与此无关。进程是一个正在运行的程序,在您的情况下,您可能只有一个进程。

就您而言,您需要的可能是模式对话框。请参阅采用 Dialog.ModalityType 参数的构造函数。然后使用对话框的 setVisible() 方法而不是 show()。对于模式对话框,它将阻塞,直到用户关闭对话框。

当然,这也取决于你的代码的上下文。如果在选项卡关闭后执行它,则没有任何帮助。您需要将其移到其他地方,但在看不到全貌的情况下很难说出哪里。

关于java - 如何避免两个进程并行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836800/

相关文章:

java - java中的线程和同步

java - Liferay 的文档库可供多个用户使用,每个用户都有私有(private)存储库/文件夹/文件

java - 在 Java 中生成带参数的 linux 命令

java - 当有人点击保存按钮时显示一个弹出窗口(JDialog)

java - 当我尝试在 android 中使用 Mandrill SMTP 发送电子邮件时出错

java - 移动文件时出现异常

process - 请解释一下暂停进程的以下特点

iphone - 从 pid 获取优先级和正常运行时间? ( iOS )

java - 无法在线程内更新 JDialog GUI

java - 如何在没有任何确定或取消选项的情况下在 Java 中仅显示纯消息?