我的程序中有一段代码,我需要在其中显示错误消息。代码:
String ErrorMsg=" Error to be Diplayed ";
JOptionPane.showMessageDialog(null, ErrorMsg, "Failure", JOptionPane.ERROR_MESSAGE);
注意:使用默认帧。
消息已成功显示,但在按“OK”按钮确认之前,如果我尝试任何其他成功的流程,消息框控件将丢失,并且消息框将不会在前景中阻止,即使是连续的流程。
我希望消息框始终位于前台,直到用户按下“确定”按钮,而失去焦点并隐藏起来。怎么做?
答案 0 :(得分:3)
如果您希望JOptionPane的行为与完整的GUI中的行为相同,那么首先要创建一个成熟的Swing GUI。忘记使用“默认”框架或任何你正在使用的框架(也许是控制台)。您需要GUI行为,因此要获得此功能,您必须通过在JFrame中显示应用程序并让JFrame启动JOptionPane来创建GUI。
答案 1 :(得分:2)
传递对父框架的引用而不是null(第一个参数)。
答案 2 :(得分:2)
我希望消息框始终位于前台,直到用户按下“确定”按钮,而失去焦点并隐藏起来。
使用JFrame和setAlwaysOnTop(true)
。您需要显示自己的消息和按钮。
JOptionPane在幕后使用JDialog。 JDialog不支持此属性。
编辑:
要获取选项窗格使用的图标,您可以使用:
Icon icon = UIManager.getIcon("OptionPane.errorIcon");
有关其他图标的列表,请参阅:UIManager Defaults。
答案 3 :(得分:2)
以下代码足以使JoptionPane消息的默认框架设置在最顶层。
JDialog dialog = new JOptionPane("ErrorMsg",JOptionPane.ERROR_MESSAGE,JOptionPane.DEFAULT_OPTION).createDialog(" Failure");
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
dialog.dispose();