java无法使用默认帧将JOptionPane聚焦在前台
我的程序中有一段代码,我需要在其中显示一条错误消息。代码:
String ErrorMsg=" Error to be Diplayed ";
JOptionPane.showMessageDialog(null, ErrorMsg, "Failure", JOptionPane.ERROR_MESSAGE);
注意:使用默认帧
消息成功显示,但在按下“确定”按钮确认之前,如果我尝试任何其他成功的流,消息框控件将丢失,消息框将不会位于前台,甚至会阻止连续的流
我希望消息框始终位于前台直到用户按下“确定”按钮,而不是失去焦点和隐藏。怎么做
# 1 楼答案
使用JFrame和
setAlwaysOnTop(true)
。您需要显示自己的消息和按钮JOptionPane在后台使用JDialog。JDialog不支持此属性
编辑:
要获取选项窗格使用的图标,可以使用:
有关其他图标的列表,请参见:UIManager Defaults
# 2 楼答案
下面的代码足以生成一条JoptionPane消息,并将默认帧设置在顶部
# 3 楼答案
如果您想让JOptionPane像在成熟的GUI中一样工作,那么首先创建一个成熟的Swing GUI。忘记使用“默认”框架或任何你正在使用的东西(可能是控制台)。您需要GUI行为,因此要实现这一点,必须通过在JFrame中显示应用程序来创建GUI,并让JFrame启动JOptionPane
# 4 楼答案
将引用传递给父帧,而不是null(第一个参数)