我正在尝试制作一个一次显示3个MessageDialog
框的程序。我认为如果您将JOPtionPane.showMessageDialog
放在actionListner
的{{1}}类中,它会每秒显示一个新的swing timer
框。
所以这是我提出的代码:
MessageDialog
}
它有效,但不是我想要的方式。不是每秒都显示一个新的盒子,而是在前一个按下ok后1秒显示一个新的盒子。
因此,当我按下“按”时,它会等待1秒钟并生成盒子。当我按下“ok”时,它会等待1秒钟,然后产生另一个,依此类推。知道如何让3个盒子一个接一个地生成吗?
答案 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
对话框。