2012-06-27 3 views
0

Я проверяю ниже condion и отображения диалогового окнаJOptionPane снижает производительность приложений?

if(query.contains(tab)) 
     { 
     JOptionPane.showMessageDialog(null,"Owner does not have privileges to access given table"); 
     } 

Я хочу, когда отображается диалоговое окно и условие истинно выполнение .дальнейшее должно останавливаться itself.How сделать это?

ли JOptionPane ухудшает производительность приложения? потому что мое приложение занимает много времени, чтобы отобразить диалоговое окно.

Edit:

for(int i=0; i<ia.length; i++) 
     { 

       tab= ia[i].toString(); 
        if(query.contains(tab)) 
       { 
        JOptionPane.showMessageDialog(null,"Owner does not have privileges to access given table"); 
        break; 
       } 
     } 
//rest code 

ответ

2

Основываясь на вас комментирует @ ответ Робина:

Он останавливается до тех пор пока пользователь избавляется диалог, но я хочу, чтобы остановить дальнейшее выполнение даже после того, как диалоговое окно закрыто т.е. я хочу выполнения останова задача, которая после этого выше, если блок.


Пожалуйста, смотрите отредактированный post.I хочет заблокировать остальное части коды, как я могу добавить это в другом?

Что вы можете сделать в своем случае: принять флаг, чтобы решить, следует ли выполнять остаток кода или нет. Некоторые вещи, как:

boolean executeCode = true; // boolean flag to decide 
for(int i=0; i<ia.length; i++) { 
    tab= ia[i].toString(); 
    if(query.contains(tab)) { 
     JOptionPane.showMessageDialog(null, 
        "Owner does not have privileges to access given table"); 
     executeCode= false; // do not want to execute the rest of code 
     break; 
    } 
} 
if (executeCode) { 
    //rest code 
} 

Я не совсем уверен, что я понял вашу проблему хорошо, но я отправил этот ответ основан на том, что я понял из ваших комментариев выше, и это также может стать трудно объяснить это Комментарии. Сообщите мне, если я ошибаюсь или не понял его должным образом.

+0

Это работает. Но у меня есть еще одна проблема. Управление происходит внутри, если блок, но не способен показать JOptionPane.Прогрессивная панель продолжает вращаться. Вот почему я сказал, прежде чем это ухудшает производительность приложения. Все предложения? – happy

+0

Где находится индикатор выполнения? –

+0

Я имел в виду индикатор выполнения Internet explorer.I не уверен, что это называется индикатором выполнения, но показывает статус страницы. – happy

1

Как уже упоминалось в классе Javadoc из JOptionPane класса:

Все диалоговые окна являются модальными. Каждый метод showXxxDialog блокирует вызывающего абонента до тех пор, пока взаимодействие пользователя не будет завершено.

Дальнейшее выполнение остановится там автоматически, пока пользователь не откроет диалог.

И у меня никогда не возникало проблем с производительностью, показывающих JOptionPane. Как вы определили, что это ухудшает вашу производительность?

+0

Он останавливается до тех пор, пока пользователь не установит диалог, но я хочу остановить дальнейшее выполнение даже после закрытия диалогового окна. I. Я хочу остановить выполнение задачи, которая находится после выше, если блок. – happy

+0

@happy, если вы не хотите выполнять что-либо, кроме блока 'if', а затем записывать все остальное в блоке' else'. –

+0

@Harry См. Отредактированный пост. Я хочу блокировать часть кода остатка, как я могу добавить его в другое место? – happy

Смежные вопросы