JOptionPane组件

来自CloudWiki
跳转至: 导航搜索

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程序设计