2011-01-29 81 views
1
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

回答

0

首先要注意的是,「過程」與此無關。一個進程是一個正在運行的程序,在你的情況下你可能只有一個進程。

就你而言,你需要的可能是模態對話框。請參閱採用Dialog.ModalityType參數的構造函數。然後使用對話框的setVisible()方法而不是show()。對於模態對話框,它會阻止,直到用戶關閉對話框。

當然,它也取決於您的代碼的上下文。如果它在標籤關閉後執行,沒有任何東西可以幫助你。你需要把它移到其他地方,但很難說沒有看到整個圖像。