如何避免两个进程并行运行
问题描述:
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()。对于模态对话框,它会阻止,直到用户关闭对话框。
当然,它也取决于您的代码的上下文。如果它在标签关闭后执行,没有任何东西可以帮助你。你需要把它移到其他地方,但很难说没有看到整个图像。
saveFileDialog应该是模态.. – 2011-01-29 12:28:08