2011-01-29 18 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); 
       } 

上記のコードは、タブを閉じるとダイアログボックスを開きます。ダイアログボックスのユーザーの応答に基づいて、タブを閉じるかどうかを決定します。しかし、私が直面している問題は、ダイアログボックスからの応答の前にタブが閉じられるということです。ダイアログボックスが表示されたら、ダイアログボックスの応答を待たずにタブが閉じます。私は、ダイアログボックスが閉じているときだけ、その条件に基づいてタブを閉じてください。手伝っていただけませんか。
-事前におねがいします2つのプロセスが並列実行されないようにする方法

+1

saveFileDialogはモーダルである必要があります。 –

答えて

0

「プロセス」はこれとは関係ありません。プロセスは実行中のプログラムで、おそらくプロセスが1つしかない場合があります。

あなたの場合、おそらくモーダルダイアログが必要です。 Dialog.ModalityType引数を取るコンストラクタを参照してください。次に、show()の代わりにダイアログのsetVisible()メソッドを使用します。モーダルダイアログの場合、ユーザーがダイアログを閉じるまでブロックされます。

もちろん、コードのコンテキストによっても異なります。タブが閉じられた後に実行されると、何も役立たないでしょう。どこか別の場所に移動する必要がありますが、全体の画像を見ることなくどこで言うのは難しいです。

関連する問題