2011-09-20 52 views
1

我有JPanel,我從中打開搜索條件對話框,該對話框的範圍爲AbstractAIFDialog。它由搜索標準文本字段,結果表格視圖和搜索按鈕組成。點擊搜索後,在這個對話框中,我需要顯示進度條,直到從數據庫中得到結果。JDialog在進度條結束後落後

我打電話下面的函數被點擊搜索按鈕時:

SearchResult res = SearchExecuteHelperUtils.execute(searchService, 0); 

以上執行函數定義如下:

public static SearchResult execute(SearchProvider searchService, int nLoadAll) 
     throws Exception 

{  
    final Display display = PlatformUI.getWorkbench().getDisplay(); 
    if(display != null) 
     display.syncExec(new Runnable() { 

      public void run() 
      { 
       try 
       { 
        (new ProgressMonitorDialog(display.getActiveShell())).run(true, true, executeSearch); 
       } 
       catch(InvocationTargetException e) 
       { 
        e.printStackTrace(); 
       } 
       catch(InterruptedException e) 
       { 
        e.printStackTrace(); 
       } 
      } 

的問題是,我有JPanel開放。最重要的是我有Search criteria對話框。點擊Search按鈕,進度條出現,但是在進度條關閉後,結果將填入Search對話框中,但對話框會落在JPanel的後面。

我該怎麼辦?

+1

爲了更快提供更好的幫助,請發佈[SSCCE](http://pscode.org/sscce.html)。 –

回答

2

..我打開了JPanel。最重要的是我有Search criteria對話框。點擊Search按鈕,進度條出現,但是在進度條關閉後,結果將填入Search對話框中,但對話框會落在JPanel的後面。

它好像在JPanel應該傳遞給JOptionPane顯示進度條/搜索結果的組件。

+0

應該發送哪個面板? 在下面的代碼行: * SearchResult中解析度= SearchExecuteHelperUtils.execute(searchService,0); * searchService是傳遞到執行功能和內部執行()當前的JDialog,這searchService不從Shell擴展並且ProgressMonitor需要一個shell;所以我們從display.getActiveShell()獲取shell。 我錯了嗎? – Rakesh

+1

*「哪個面板應該發送?」*您的SSCCE在哪裏? *「我錯了嗎?」*花費時間推測而不是製作SSCCE? –