2011-09-20 2 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하지 않습니다 셸에서 확장하고 ProgressMonitor에는 셸이 필요합니다. 그래서 우리는 display.getActiveShell()으로부터 쉘을 얻는다. 어딘가 잘못 됐습니까? – Rakesh

+1

* "어느 패널을 보내야합니까?"* SSCCE는 어디에 있습니까? * "나는 어딘가 틀린가?"* SSCCE를 만들기보다는 시간을 보냈습니까? –