У меня есть 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
.
Что мне делать?