JOptionPane组件
目录
JOptionPane
JOptionPane 是方便地弹出要求用户提供值或向其发出通知的标准对话框。这些对话框的基本外形通常与下图类似:
例如:
常用方法
虽然由于方法数多使 JOptionPane 类可能显得复杂,但几乎所有此类的使用都是对下列静态 showXxxDialog 方法之一的单行调用:
方法名 描述 showConfirmDialog 询问一个确认问题,如 yes/no/cancel。 showInputDialog 提示要求某些输入。 showMessageDialog 告知用户某事已发生。 showOptionDialog 上述三项的大统一 (Grand Unification)。
方法中的参数
1) parentComponent,定义作为此对话框的父对话框的 Component。通过两种方式使用此参数:包含它的 Frame 可以用作对话框的父 Frame,在对话框的位置使用其屏幕坐标。一般情况下,将对话框紧靠组件置于其之下。此参数可以为 null,在这种情况下,默认的 Frame 用作父级,并且对话框将居中位于屏幕上。
2) message,要置于对话框中的描述消息。在最常见的应用中,message 就是一个 String 或 String 常量。不过,此参数的类型实际上是 Object。其解释依赖于其类型:
- Object[]:对象数组被解释为在纵向堆栈中排列的一系列 message(每个对象一个)。解释是递归式的,即根据其类型解释数组中的每个对象。
- Component:该 Component 在对话框中显示。
- Icon:该 Icon 被包装在 JLabel 中并在对话框中显示。
- 其他:该对象通过调用其 toString 方法被转换为 String。结果被包装在 JLabel 中显示。
3)messageType,定义 message 的样式。外观管理器根据此值对对话框进行不同地布置,并且通常提供默认图标。可能的值为:
- ERROR_MESSAGE
- INFORMATION_MESSAGE
- WARNING_MESSAGE
- QUESTION_MESSAGE
- PLAIN_MESSAGE
4)optionType,定义在对话框的底部显示的选项按钮的集合:
- DEFAULT_OPTION
- YES_NO_OPTION
- YES_NO_CANCEL_OPTION
- OK_CANCEL_OPTION
用户并非仅限于使用此选项按钮集合。使用 options 参数可以提供想使用的任何按钮。
5)options,将在对话框底部显示的选项按钮集合的更详细描述。options 参数的常规值是 String 数组,但是参数类型是 Object 数组。根据对象的以下类型为每个对象创建一个按钮:
- Component:该组件被直接添加到按钮行中。
- Icon:创建的 JButton 以此图标作为其标签。
- 其他:该 Object 通过使用其 toString 方法转换为字符串,并使用该结果作为 JButton 的标签。
6)icon,要置于对话框中的装饰性图标。图标的默认值由 messageType 参数确定。
7)title,对话框的标题。
8)initialValue,默认选择(输入值)。
方法的返回值
showInputDialog方法会返回字符串,showConfirmDialog 方法会返回一个整数,可能的值为:
- YES_OPTION :0
- NO_OPTION :1
- CANCEL_OPTION: 2
- OK_OPTION :0
- CLOSED_OPTION:-1
JOptionPane的具体使用
JOptionPane.showConfirmDialog
JOptionPane.showConfirmDialog会弹出确认对话框,它有四种参数设置类型 :
- JOptionPane.showConfirmDialog(parentComponent, message)
- JOptionPane.showConfirmDialog(parentComponent, message, title, optionType)
- JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType)
- JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType, icon)
例如,显示一个信息面板,信息为“是否喜欢Java”,代码如下:
JOptionPane.showConfirmDialog(null,"是否喜欢Java?" );
窗口显示效果如下图所示:
下面代码修改信息面板中的信息类型为提示,添加标题“调查文君”,信息为是否:
JOptionPane.showConfirmDialog(null, "是否喜欢Java?", "调查问卷",JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
窗口显示效果如下图所示:
JOptionPane.showInputDialog
JOptionPane.showInputDialog方法会弹出一个输入对话框。它有六种参数设置类型 :
- JOptionPane.showInputDialog(message);
- JOptionPane.showInputDialog(parentComponent, message);
- JOptionPane.showInputDialog(message, initialSelectionValue);
- JOptionPane.showInputDialog(parentComponent, message, initialSelectionValue)
- JOptionPane.showInputDialog(parentComponent, message, title, messageType);
- JOptionPane.showInputDialog(parentComponent, message, title, messageType, icon, selectionValues, initialSelectionValue)
例如,询问“最喜欢的水果”:
JOptionPane.showInputDialog("你最喜欢的水果是:");
提示窗口效果如下图所示:
如果从“桃子、梨、苹果、西瓜、葡萄”几种水果中选择一种最喜欢的水果:
Object[] fruits= {"梨","桃","苹果","西瓜","葡萄"}; JOptionPane.showInputDialog(null, "你最喜欢的水果是:","调查",JOptionPane.QUESTION_MESSAGE, null, fruits, fruits[0]);
提示窗口效果如下图所示:
JOptionPane.showMessageDialog
JOptionPane.showMessageDialog方法会弹出一个消息提示框,有三种参数设置
- JOptionPane.showMessageDialog(parentComponent, message);
- JOptionPane.showMessageDialog(parentComponent, message, title, messageType);
- JOptionPane.showMessageDialog(parentComponent, message, title, messageType, icon);
例如,显示一个错误对话框,该对话框显示的 显示的信息为'错误':
JOptionPane.showMessageDialog(null, "错误","错误",JOptionPane.ERROR_MESSAGE);
提示窗口效果如下图所示:
JOptionPane.showOptionDialog
JOptionPane.showOptionDialog弹出一个选择对话框,只有一种参数设置 :
JOptionPane.showOptionDialog(parentComponent, message, title, optionType, messageType, icon, options, initialValue)
例如,从“桃子、梨、苹果、西瓜、葡萄”几种水果中选择一种最喜欢的水果:
Object[] fruits= {"梨","桃","苹果","西瓜","葡萄"}; JOptionPane.showOptionDialog(null, "你最喜欢的水果是:","调查",JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.QUESTION_MESSAGE,null, fruits, fruits[0]);
返回 Java程序设计