如果用户尚未关闭第一个,我想停止显示第二个(或第 n 个)showConfirmDialog,但我找不到这样做的方法。
问问题
134 次
3 回答
1
如果我正确理解了您的问题(和评论),您肯定Thread
会在套接字上侦听文本,并且当它接收到文本时,它会显示一个带有新文本的新对话框。
我通过显示一个包含JTextArea
. 当我Thread
收到新文本时,我将文本附加到JTextArea
,并显示JTextArea
它尚未显示的时间。
当用户关闭对话框时,我清除了JTextArea
.
小旁注:您最好使用您在评论中添加的额外信息来更新您的问题,因为这些评论可以更清楚地说明您要解决的问题。
于 2012-07-05T18:28:53.800 回答
1
JOptionPane.showConfirmDialog
正在阻塞。检查调用的返回值以确定是否应该显示下一个对话框,如下所示:
int result = JOptionPane.showConfirmDialog(frame, "First question?");
if (result != JOptionPane.CANCEL_OPTION) {
int nextResult = JOptionPane.showConfirmDialog(frame, "Next question?");
...
}
如果您有一系列问题要问,您可以在用户关闭对话框时使用循环和中断:
for (String question : questions) {
int result = JOptionPane.showConfirmDialog(frame, question);
if (result == JOptionPane.CANCEL_OPTION)
break;
// handle (yes/no) the response
....
}
于 2012-07-05T14:44:38.543 回答
0
我建议使用直接的 JDialog(JOptionPane 只是创建 JDialog 的快捷方式)。您可以使用 WindowListener / windowClosing 事件来确定是否应该显示下一个 JOptionPane
于 2012-07-05T14:44:45.770 回答