在swing中,基于业务的考量,会有对话框来限制用户的行为及对用户的动作进行提示.
Swing中提供了JOptionPane类来实现类似 Windows平台下的MessageBox的功能,同样在Java中也有,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。这些对话框都是模式对话框。
ConfirmDialog --- 确认对话框,提出问题,然后由用户自己来确认(按"Yes"或"No"按钮)
InputDialog --- 提示输入文本
MessageDialog --- 显示信息
OptionDialog -- 组合其它三个对话框类型。
这四个对话框可以采用showXXXDialog()来显示,如showConfirmDialog()显示确认对话框、 showInputDialog()显示输入文本对话框、showMessageDialog()显示信息对话框、showOptionDialog() 显示选择性的对话框。它们所使用的参数说明如下:
① ParentComponent:指示对话框的父窗口对象,一般为当前窗口。也可以为null即采用缺省的Frame作为父窗口,此时对话框将设置在屏幕的正中。
② message:指示要在对话框内显示的描述性的文字
③ String title:标题条文字串。
④ Component:在对话框内要显示的组件(如按钮)
⑤ Icon:在对话框内要显示的图标
⑥ messageType:一般可以为如下的值ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE、PLAIN_MESSAGE、
⑦ optionType:它决定在对话框的底部所要显示的按钮选项。一般可以为DEFAULT_OPTION、YES_NO_OPTION、YES_NO_CANCEL_OPTION、OK_CANCEL_OPTION。
使用实例:
(1)显示MessageDialog
JOptionPane.showMessageDialog(null, "在对话框内显示的描述性的文字", "标题条文字串", JOptionPane.ERROR_MESSAGE);
(2)显示ConfirmDialog
JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);
(3)显示OptionDialog:该种对话框可以由用户自己来设置各个按钮的个数并返回用户点击各个按钮的序号(从0开始计数)
Object[] options = {"确定","取消","帮助"};
int response=JOptionPane.showOptionDialog(this, "这是个选项对话框,用户可以选择自己的按钮的个数", "选项对话框标题",JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if(response==0)
{ this.setTitle("您按下了第OK按钮 ");
}
else if(response==1)
{ this.setTitle("您按下了第Cancel按钮 ");
}
else if(response==2)
{ this.setTitle("您按下了第Help按钮 ");
}
(4)显示InputDialog 以便让用户进行输入
String inputValue = JOptionPane.showInputDialog("Please input a value");
(5)显示InputDialog 以便让用户进行选择地输入
Object[] possibleValues = { "First", "Second", "Third" }; //用户的选择项目
Object selectedValue = JOptionPane.showInputDialog(null, "Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);
System.out.println("您按下了" + (String) selectedValue + "项目");
===========================================================================================
字段摘要
static int CANCEL_OPTION
选择 CANCEL 时从类方法返回的值。
static int CLOSED_OPTION
用户没有做出任何选择而关闭了窗口时从类方法返回的值,很可能将此值视为 CANCEL_OPTION 或 NO_OPTION。
static int DEFAULT_OPTION
用于 showConfirmDialog 的类型。
static int ERROR_MESSAGE
用于错误消息。
protected Icon icon
在窗格中使用的图标。
static String ICON_PROPERTY
icon 的 bound 属性名。
static int INFORMATION_MESSAGE
用于信息消息。
static String INITIAL_SELECTION_VALUE_PROPERTY
initialSelectionValue 的 bound 属性名。
static String INITIAL_VALUE_PROPERTY
initialValue 的 bound 属性名。
protected Object initialSelectionValue
要在 selectionValues 中选择的初始值。
protected Object initialValue
应该在 options 中最初选择的值。
static String INPUT_VALUE_PROPERTY
inputValue 的 bound 属性名。
protected Object inputValue
用户已输入的值。
protected Object message
要显示的消息。
static String MESSAGE_PROPERTY
message 的 bound 属性名。
static String MESSAGE_TYPE_PROPERTY
type 的 bound 属性名。
protected int messageType
消息类型。
static int NO_OPTION
选择 NO 时从类方法返回的值。
static int OK_CANCEL_OPTION
用于 showConfirmDialog 的类型。
static int OK_OPTION
选择 OK 时从类方法返回的值。
static String OPTION_TYPE_PROPERTY
optionType 的 bound 属性名。
protected Object[] options
要向用户显示的选项。
static String OPTIONS_PROPERTY
option 的 bound 属性名。
protected int optionType
选项类型,DEFAULT_OPTION、YES_NO_OPTION、YES_NO_CANCEL_OPTION 或 OK_CANCEL_OPTION 之一。
static int PLAIN_MESSAGE
未使用图标。
static int QUESTION_MESSAGE
用于问题。
static String SELECTION_VALUES_PROPERTY
selectionValues 的 bound 属性名。
protected Object[] selectionValues
用户可以从中选择值的数组。
static Object UNINITIALIZED_VALUE
指示用户尚未选择值。
protected Object value
当前选择的值,该值将为有效选项或者 UNINITIALIZED_VALUE 或 null。
static String VALUE_PROPERTY
value 的 bound 属性名。
static String WANTS_INPUT_PROPERTY
wantsInput 的 bound 属性名。
protected boolean wantsInput
如果为 true,则向用户提供 UI 窗口小部件以获取输入。
static int WARNING_MESSAGE
用于警告消息。
static int YES_NO_CANCEL_OPTION
用于 showConfirmDialog 的类型。
static int YES_NO_OPTION
用于 showConfirmDialog 的类型。
static int YES_OPTION
选择 YES 时从类方法返回的值。
方法摘要
JDialog createDialog(Component parentComponent, String title)
创建并在 parentComponent 窗体中的 parentComponent 中央返回一个包装 this 的新 JDialog。
JInternalFrame createInternalFrame(Component parentComponent, String title)
创建并返回 JInternalFrame 的实例。
AccessibleContext getAccessibleContext()
返回与此 JOptionPane 相关联的 AccessibleContext。
static JDesktopPane getDesktopPaneForComponent(Component parentComponent)
返回指定组件的桌面窗格。
static Frame getFrameForComponent(Component parentComponent)
返回指定组件的 Frame。
Icon getIcon()
返回此窗格显示的图标。
Object getInitialSelectionValue()
返回(根据最初选择)向用户显示的输入值。
Object getInitialValue()
返回初始值。
Object getInputValue()
如果 wantsInput 为 true,则返回用户已输入的值。
int getMaxCharactersPerLineCount()
返回要置于消息的行中的最大字符数。
Object getMessage()
返回此窗格显示的消息对象。
int getMessageType()
返回消息类型。
Object[] getOptions()
返回用户可以作出的选择。
int getOptionType()
返回显示的选项类型。
static Frame getRootFrame()
返回用于不提供窗体的类方法中的 Frame。
Object[] getSelectionValues()
返回输入选择值。
OptionPaneUI getUI()
返回实现此组件 L&F 的 UI 对象。
String getUIClassID()
返回实现此组件 L&F 的 UI 类的名称。
Object getValue()
返回用户所选值。
boolean getWantsInput()
返回 wantsInput 属性的值。
protected String paramString()
返回此 JOptionPane 的字符串表示形式。
void selectInitialValue()
请求选择初始值,该请求将焦点设置为初始值。
void setIcon(Icon newIcon)
设置要显示的图标。
void setInitialSelectionValue(Object newValue)
设置(根据选择)最初向用户显示的输入值。
void setInitialValue(Object newInitialValue)
设置要启用的初始值,即最初显示窗格时处于焦点状态的 Component。
void setInputValue(Object newValue)
设置由用户选择或输入的输入值。
void setMessage(Object newMessage)
设置选项窗格的消息对象。
void setMessageType(int newType)
设置选项窗格的消息类型。
void setOptions(Object[] newOptions)
设置此窗格显示的选项。
void setOptionType(int newType)
设置要显示的选项。
static void setRootFrame(Frame newRootFrame)
设置窗体,以用于不提供窗体的类方法。
void setSelectionValues(Object[] newValues)
设置窗格的输入选择值,该窗格向用户提供可以从中进行选择的项列表。
void setUI(OptionPaneUI ui)
设置实现此组件 L&F 的 UI 对象。
void setValue(Object newValue)
设置用户所选值。
void setWantsInput(boolean newValue)
设置 wantsInput 属性。
static int showConfirmDialog(Component parentComponent, Object message)
调出带有选项 Yes、No 和 Cancel 的对话框;标题为 Select an Option。
static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType)
调出一个由 optionType 参数确定其中选项数的对话框。
static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)
调用一个由 optionType 参数确定其中选项数的对话框,messageType 参数确定要显示的图标。
static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)
调出一个带有指定图标的对话框,其中的选项数由 optionType 参数确定。
static String showInputDialog(Component parentComponent, Object message)
显示请求用户输入内容的问题消息对话框,它以 parentComponent 为父级。
static String showInputDialog(Component parentComponent, Object message, Object initialSelectionValue)
显示请求用户输入内容的问题消息对话框,它以 parentComponent 为父级。
static String showInputDialog(Component parentComponent, Object message, String title, int messageType)
显示请求用户提供输入的对话框,它以 parentComponent 为父级,该对话框的标题为 title,消息类型为 messageType。
static Object showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)
提示用户在可以指定初始选择、可能选择及其他所有选项的模块化的对话框中输入内容。
static String showInputDialog(Object message)
显示请求用户输入的问题消息对话框。
static String showInputDialog(Object message, Object initialSelectionValue)
显示请求用户输入的问题消息对话框,它带有已初始化为 initialSelectionValue 的输入值。
static int showInternalConfirmDialog(Component parentComponent, Object message)
调出带有选项 Yes、No 和 Cancel 的内部对话框面板;标题为 Select an Option。
static int showInternalConfirmDialog(Component parentComponent, Object message, String title, int optionType)
调出一个由 optionType 参数确定其中选项数的内部对话框面板。
static int showInternalConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)
调出一个由 optionType 参数确定其中选项数的内部对话框面板,messageType 参数确定要显示的图标。
static int showInternalConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)
调出一个带有指定图标的内部对话框面板,其中的选项数由 optionType 参数确定。
static String showInternalInputDialog(Component parentComponent, Object message)
显示请求用户输入内容的内部问题消息对话框,它以 parentComponent 为父级。
static String showInternalInputDialog(Component parentComponent, Object message, String title, int messageType)
显示请求用户提供输入的内部对话框,该对话框的标题为 title,消息类型为 messageType,并以 parentComponent 为父级。
static Object showInternalInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)
提示用户在可以指定初始选择、可能选择及其他所有选项的模块化的内部对话框中输入内容。
static void showInternalMessageDialog(Component parentComponent, Object message)
调出内部确认对话框面板。
static void showInternalMessageDialog(Component parentComponent, Object message, String title, int messageType)
调出一个显示消息的内部对话框面板,它使用由 messageType 参数确定的默认图标。
static void showInternalMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)
调出一个显示消息的内部对话框面板,为其指定了所有参数。
static int showInternalOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)
调出一个带有指定图标的内部对话框面板,其中的初始选择由 initialValue 参数确定,选项数由 optionType 参数确定。
static void showMessageDialog(Component parentComponent, Object message)
调出标题为 "Message" 的信息消息对话框。
static void showMessageDialog(Component parentComponent, Object message, String title, int messageType)
调出对话框,它显示使用由 messageType 参数确定的默认图标的 message。
static void showMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)
调出一个显示信息的对话框,为其指定了所有参数。
static int showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)
调出一个带有指定图标的对话框,其中的初始选择由 initialValue 参数确定,选项数由 optionType 参数确定。
void updateUI()
UIManager 发出的关于 L&F 已改变的通知。