最近在作swing程序中遇到使用消息提示框的,JOptionPane类其中封装了不少的方法。很方便的,因而就简单的整理了一下。如下是官方文档说明:html
JOptionPane
有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。因为方法数多使 JOptionPane
类可能显得复杂,但几乎全部此类的使用都是对下列静态 showXxxDialog
方法之一的单行调用:java
方法名 | 描述 |
showConfirmDialog | 询问一个确认问题,如 yes/no/cancel。 |
showInputDialog | 提示要求某些输入。 |
showMessageDialog | 告知用户某事已发生。 |
showOptionDialog | 上述三项的大统一 (Grand Unification)。 |
全部这些方法还可能以 showInternalXXX
风格出现,该风格使用内部窗体来保存对话框。此外还定义了多种便捷方法,这些方法重载那些基本方法,使用不一样的参数列表。数组
全部对话框都是有模式的。在用户交互完成以前,每一个 showXxxDialog
方法都一直阻塞调用者。布局
这些对话框的基本外形一般与右图相似,尽管各类外观从根本上决定着最后结果。尤为是,外观能够调整布局以适应选项窗格的 ComponentOrientation
属性。spa
参数:
这些方法的参数遵照一致的模式:code
- 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_MESSAGE
- optionType
- 定义在对话框的底部显示的选项按钮的集合:
用户并不是仅限于使用此选项按钮集合。使用 options 参数能够提供想使用的任何按钮。
DEFAULT_OPTION
YES_NO_OPTION
YES_NO_CANCEL_OPTION
OK_CANCEL_OPTION
- options
- 将在对话框底部显示的选项按钮集合的更详细描述。options 参数的常规值是
String
数组,可是参数类型是Object
数组。根据对象的如下类型为每一个对象建立一个按钮:
- Component
- 该组件被直接添加到按钮行中。
- Icon
- 建立的
JButton
以此图标做为其标签。- 其余
- 该
Object
经过使用其toString
方法转换为字符串,并使用该结果做为JButton
的标签。- icon
- 要置于对话框中的装饰性图标。图标的默认值由
messageType
参数肯定。- title
- 对话框的标题。
- initialValue
- 默认选择(输入值)。
当选择更改时,调用生成 PropertyChangeEvent
的 setValue
方法。htm
若是已为全部输入 setWantsInput
配置了 JOptionPane
,则还能够侦听绑定属性 JOptionPane.INPUT_VALUE_PROPERTY
,以肯定什么时候用户输入或选择了值。对象
当其中一个 showXxxDialog
方法返回整数时,可能的值为:blog
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);