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

时间:2011-01-29 12:17:35

标签: 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);
                }

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

1 个答案:

答案 0 :(得分:0)

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

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

当然,这也取决于代码的上下文。如果在关闭选项卡后执行,则没有任何内容可以帮助您。你需要把它移到其他地方,但如果没看到整个画面就很难说。