>我正在检查下面的条件并显示对话框
if(query.contains(tab))
{
JOptionPane.showMessageDialog(null,"Owner does not have privileges to access given table");
}
我希望当显示对话框并且条件为真时,进一步执行应该在那里停止。怎么做?
和 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
的性能问题。您如何确定它会降低您的性能?