0

因此,我试图在发生某些事情时出现弹出消息,但我希望代码在消息出现后立即继续,而不是等待用户按下确定按钮。

JOptionPane.showMessageDialog(null, message, "Alert!", JOptionPane.ERROR_MESSAGE);
System.out.println("HI!");

当我这样做时,它不会打印 HI!直到我按下 OK。我怎样才能解决这个问题?

4

3 回答 3

0

根据javadoc

所有对话框都是模态的。每个 showXxxDialog 方法都会阻塞调用者,直到用户交互完成。

因此,如上所述,您需要在单独的线程中显示对话框。

于 2013-09-12T02:47:40.233 回答
0

这是正确的......System.out.println("HI!");直到它没有从消息框得到响应才到达。单击确定后,将执行下一行。没有什么可修复的。Java 就是这样工作的。

于 2013-09-12T02:30:57.707 回答
0

您可以创建单独的线程并JOptionPane.showMessageDialog从中调用:

new Thread(new Runnable(){
    public void run() {
        JOptionPane.showMessageDialog(null, "message", "Alert!",
                JOptionPane.ERROR_MESSAGE);
    }
}).start();

System.out.println("HI!");
于 2013-09-12T02:34:15.837 回答