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

问题描述:

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

saveFileDialog应该是模态.. – 2011-01-29 12:28:08

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

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

当然,它也取决于您的代码的上下文。如果它在标签关闭后执行,没有任何东西可以帮助你。你需要把它移到其他地方,但很难说没有看到整个图像。