一次显示多个MessageDialog

时间:2016-07-08 19:19:50

标签: java swing timer joptionpane

我正在尝试制作一个一次显示3个MessageDialog框的程序。我认为如果您将JOPtionPane.showMessageDialog放在actionListner的{​​{1}}类中,它会每秒显示一个新的swing timer框。

所以这是我提出的代码:

MessageDialog

}

它有效,但不是我想要的方式。不是每秒都显示一个新的盒子,而是在前一个按下ok后1秒显示一个新的盒子。

因此,当我按下“按”时,它会等待1秒钟并生成盒子。当我按下“ok”时,它会等待1秒钟,然后产生另一个,依此类推。知道如何让3个盒子一个接一个地生成吗?

2 个答案:

答案 0 :(得分:3)

当使用JOptionPane的showX方法时,您正在创建文档所述的模态(阻塞和一次一个)对话框。 您可以通过手动创建JOptionPane而不是使用showX方法直接使用JOptionPane。

手动创建一个新的并将其设置为不是模态的:

public class P1 {
  public P2 P2 { get; set; }
  public P4 P4 { get; set; }
}

public class P2 {
  public P3 P3 { get; set; }
}

public class P3 { }

public class P4 { }

答案 1 :(得分:1)

创建对话框的方法(JOptionPane.show ...)在用户以某种方式关闭对话框之前不会返回。鉴于Swing是单线程的,在此之前不会发生其他Swing进程。如果您希望一次打开三个对话框,请使用non-modal对话框。