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);
                }

上記のコードは、タブを閉じるとダイアログボックスを開きます。ダイアログボックスのユーザーの応答に基づいて、タブを閉じるかどうかを決定します。しかし、私が直面している問題は、ダイアログボックスからの応答の前にタブが自動的に閉じることです。ダイアログボックスが表示されると、ダイアログボックスの応答を待たずにタブが閉じます。ダイアログボックスを閉じるときだけ、条件に基づいてタブを閉じる必要があります。手伝っていただけませんか。
-前もって感謝します

4

1 に答える 1

0

最初に注意すべきことは、「プロセス」はこれとは何の関係もありません。プロセスは実行中のプログラムです。あなたの場合、おそらくプロセスは 1 つだけです。

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

もちろん、コードのコンテキストにも依存します。タブを閉じた後に実行しても、何も役に立ちません。別の場所に移動する必要がありますが、全体像を見ずに場所を特定するのは困難です。

于 2011-01-29T12:31:44.877 に答える