最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法。很方便的,于是就简单的整理了一下。以下是官方文档说明:
JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。由于方法数多使 JOptionPane 类可能显得复杂,但几乎所有此类的使用都是对下列静态 showXxxDialog 方法之一的单行调用:
方法名
描述
showConfirmDialog
询问一个确认问题,如 yes/no/cancel。
showInputDialog
提示要求某些输入。
showMessageDialog
告知用户某事已发生。
showOptionDialog
上述三项的大统一 (Grand Unification)。
所有这些方法还可能以 showInternalXXX 风格出现,该风格使用内部窗体来保存对话框。此外还定义了多种便捷方法,这些方法重载那些基本方法,使用不同的参数列表。
所有对话框都是有模式的。在用户交互完成之前,每个 showXxxDialog 方法都一直阻塞调用者。
这些对话框的基本外形通常与右图类似,尽管各种外观从根本上决定着最后结果。尤其是,外观可以调整布局以适应选项窗格的 ComponentOrientation 属性。
参数:
这些方法的参数遵守一致的模式:
parentComponent定义作为此对话框的父对话框的 Component。通过两种方式使用此参数:包含它的 Frame 可以用作对话框的父 Frame,在对话框的位置使用其屏幕坐标。一般情况下,将对话框紧靠组件置于其之下。此参数可以为 null,在这种情况下,默认的 Frame 用作父级,并且对话框将居中位于屏幕上(取决于 L&F)。message要置于对话框中的描述消息。在最常见的应用中,message 就是一个 String 或 String 常量。不过,此参数的类型实际上是 Object。其解释依赖于其类型:
Object[]对象数组被解释为在纵向堆栈中排列的一系列 message(每个对象一个)。解释是递归式的,即根据其类型解释数组中的每个对象。Component该 Component 在对话框中显示。Icon该 Icon 被包装在 JLabel 中并在对话框中显示。其他该对象通过调用其 toString 方法被转换为 String。结果被包装在 JLabel 中显示。messageType定义 message 的样式。外观管理器根据此值对对话框进行不同地布置,并且通常提供默认图标。可能的值为:
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE
PLAIN_MESSAGEoptionType定义在对话框的底部显示的选项按钮的集合:
DEFAULT_OPTION
YES_NO_OPTION
YES_NO_CANCEL_OPTION
OK_CANCEL_OPTION
用户并非仅限于使用此选项按钮集合。使用 options 参数可以提供想使用的任何按钮。options将在对话框底部显示的选项按钮集合的更详细描述。options 参数的常规值是 String 数组,但是参数类型是 Object 数组。根据对象的以下类型为每个对象创建一个按钮:
Component该组件被直接添加到按钮行中。Icon创建的 JButton 以此图标作为其标签。其他该 Object 通过使用其 toString 方法转换为字符串,并使用该结果作为 JButton 的标签。icon要置于对话框中的装饰性图标。图标的默认值由 messageType 参数确定。title对话框的标题。initialValue默认选择(输入值)。
当选择更改时,调用生成 PropertyChangeEvent 的 setValue 方法。
如果已为所有输入 setWantsInput 配置了 JOptionPane,则还可以侦听绑定属性 JOptionPane.INPUT_VALUE_PROPERTY,以确定何时用户输入或选择了值。
当其中一个 showXxxDialog 方法返回整数时,可能的值为:
YES_OPTION
NO_OPTION
CANCEL_OPTION
OK_OPTION
CLOSED_OPTION
了解了官方的解释后,当然是要对这些东西进行使用了,具体是使用和各种样式如面代码及图片所示:、
JOptionPane.showMessageDialog(null, "警告标识提示消息", "标题",JOptionPane.WARNING_MESSAGE);
JOptionPane.showMessageDialog(null, "错误标识提示消息.", "标题",JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, "信息标识提示消息.", "标题",JOptionPane.INFORMATION_MESSAGE);上面的显示可以直接调用默认提示框,其效果是一致的。
JOptionPane.showMessageDialog(null, "提示框");
JOptionPane.showMessageDialog(null, "疑问标识提示消息.", "标题",JOptionPane.QUESTION_MESSAGE);
JOptionPane.showMessageDialog(null, "无标识提示消息.", "标题",JOptionPane.PLAIN_MESSAGE);