在进度条完成后,JDialog落后了

时间:2011-09-20 11:05:22

标签: java swing progress-bar jdialog

我有JPanel,我正在从中打开一个扩展AbstractAIFDialog的搜索条件对话框。它由搜索条件文本字段,结果表视图和搜索按钮组成。单击“搜索”后,在此对话框中,我需要显示进度条,直到从数据库中获取结果。

单击“搜索”按钮时,我正在调用以下函数:

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 个答案:

答案 0 :(得分:2)

  

..我JPanel打开了。最重要的是,我有Search criteria对话框。单击Search按钮,将显示进度条,但在进度条关闭后,结果将填入Search对话框,但对话框会在JPanel后面。

似乎JPanel应该是传递给显示进度条/搜索结果的JOptionPane的组件。