簡體   English   中英

JOptionPane會降低應用程序性能嗎?

[英]JOptionPane degrades application performance?

我正在檢查以下條件並顯示對話框

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

我想要在顯示對話框且條件為true的情況下繼續執行,該怎么辦呢?

JOptionPane是否會降低應用程序性能? 因為我的應用程序需要很多時間才能顯示對話框。

編輯:

  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

根據您對@Robin答案的評論:

它會一直停止,直到用戶放置對話框為止,但是即使關閉對話框,我也想停止進一步的執行,即我想停止執行if塊之后的任務。


請查看編輯后的帖子。我想阻止其余代碼部分,如何將其添加到其他代碼中?

在這種情況下,您可以執行以下操作:標記以決定是否執行其余代碼。 就像是:

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
}

我不確定自己是否已經很好地理解了您的問題,但是我根據您對以上評論的理解發布了此答案,並且在評論中也很難解釋。 如果我錯了或沒有正確理解,請通知我。

JOptionPane類的javadoc類中所述:

所有對話框都是模態的。 每個showXxxDialog方法都會阻止調用者,直到用戶的交互完成為止。

因此,進一步的執行將自動在那里停止,直到用戶處理該對話框為止。

而且我從未遇到任何顯示JOptionPane性能問題。 您如何確定它會降低性能?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM