Java Swing 弹出对话框的使用

Swing 中提供了 JOptionPane 类来实现类似 Windows 平台下的 MessageBox 的功能,利用 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

Java代码  

JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);    

JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);  

 

 

(3) 显示 OptionDialog :该种对话框可以由用户自己来设置各个按钮的个数并返回用户点击各个按钮的序号( 从 0 开始计数 )

Java代码 

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 按钮  ");   

}    

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 以便让用户进行输入

 

Java代码 

String inputValue = JOptionPane.showInputDialog("Please input a value");    

String inputValue = JOptionPane.showInputDialog("Please input a value");   

 

(5) 显示 InputDialog 以便让用户进行选择地输入

Java代码 

Object[] possibleValues = { "First", "Second", "Third" }; // 用户的选择项目       

ject selectedValue = JOptionPane.showInputDialog(null, "Choose one","Input",JOptionPane.INFORMATION_MESSAGE, null, possibleValues,possibleValues[0]);        

setTitle(" 您按下了 "+(String)selectedValue+" 项目 ");     

 

 

 

public class JOptionPane extends JComponent implements Accessible

JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。有关使用 JOptionPane的信息,请参见 The Java Tutorial 中的 How to Make Dialogs 一节。

虽然由于方法数多使 JOptionPane 类可能显得复杂,但几乎所有此类的使用都是对下列静态showXxxDialog 方法之一的单行调用:


方法名


描述


showConfi


 


rmDialog


询问一个确认问题,如 yes/no/cancel。


showInputDialog


提示要求某些输入。


showMessageDialog


告知用户某事已发生。


showOptionDialog


上述三项的大统一 (Grand Unification)。

所有这些方法还可能以 showInternalXXX 风格出现,该风格使用内部窗体来保存对话框(请参见JInternalFrame )。此外还定义了多种便捷方法,这些方法重载那些基本方法,使用不同的参数列表。

所有对话框都是有模式的。在用户交互完成之前,每个 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_MESSAGE

optionType

定义在对话框的底部显示的选项按钮的集合:

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

示例:

显示一个错误对话框,该对话框显示的 message 为 'alert' :

JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE);

显示一个内部信息对话框,其 message 为 'information' :

JOptionPane.showInternalMessageDialog(frame, "information",

 

"information", JOptionPane.INFORMATION_MESSAGE);

显示一个信息面板,其 options 为 "yes/no" , message 为 'choose one' :

JOptionPane.showConfirmDialog(null,

 

"choose one", "choose one", JOptionPane.YES_NO_OPTION);

显示一个内部信息对话框,其 options 为 "yes/no/cancel" , message 为 'please choose one',并具有 title 信息:

JOptionPane.showInternalConfirmDialog(frame,

 

"please choose one", "information",

 

JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);

显示一个警告对话框,其 options 为 OK 、 CANCEL , title 为 'Warning' , message 为 'Click OK to continue' :

Object[] options = { "OK", "CANCEL" };
JOptionPane.showOptionDialog(null, "Click OK to continue", "Warning",

 

JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,

 

null, options, options[0]);

显示一个要求用户键入 String 的对话框:

String inputValue = JOptionPane.showInputDialog("Please input a value");

显示一个要求用户选择 String 的对话框:

Object[] possibleValues = { "First", "Second", "Third" };
Object selectedValue = JOptionPane.showInputDialog(null,

 

"Choose one", "Input",

 

JOptionPane.INFORMATION_MESSAGE, null,

 

possibleValues, possibleValues[0]);

直接使用: 
要直接创建和使用 JOptionPane ,标准模式大致如下:

 

Java代码 

JOptionPane pane = new JOptionPane(arguments); pane.set.Xxxx(...); // Configure  

JDialog dialog = pane.createDialog(parentComponent, title);  

dialog.show(); Object selectedValue = pane.getValue();  

if(selectedValue == null) return CLOSED_OPTION; //If there is not an array of option buttons: if(options == null) {  

  if(selectedValue instanceof Integer) return ((Integer)selectedValue).intValue();  

  return CLOSED_OPTION; } //If there is an array of option buttons:  

for(int counter = 0, maxCounter = options.length; counter < maxCounter; counter++) {  

if(options[counter].equals(selectedValue))  

  return counter; }  

  return CLOSED_OPTION;   
时间: 2024-09-23 12:51:03

Java Swing 弹出对话框的使用的相关文章

java selenium操作弹出对话框示例讲解_java

Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 测试页面 Selenium 操作对话框的代码 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框: 用于提示用户在当前对话框中输入数据,一般需要用户单击取消或者确认按钮 3. 确认框: 用于提示用户确认或者取消某个操作,一般需要用户单击取消或者确认按钮 测试页面 用如下页面为例进行讲解, 包括了警告框,提示框,确认框 http://si

JAVA popupMenu弹出菜单了,怎样实现点击项产生事件

问题描述 JAVA popupMenu弹出菜单了,怎样实现点击项产生事件 如图:我弹出的这个PopupMenu ,想在点击添加好友响应事件,但是他ActionListener,该怎么样去 响应事件,求解,刚那个朋友说的不对.求解. 解决方案 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.Mous

图片-打开eclipse时出现错误,弹出对话框如下,该怎么办

问题描述 打开eclipse时出现错误,弹出对话框如下,该怎么办 解决方案 没能找到环境变量里的Java的JDK ,重新配置下环境变量吧,百度下怎么配置Java环境变量,很多答案的. 解决方案二: 或者也可能是环境变量的版本有32 64 之分,这个必须跟你的E的32 64 一致 解决方案三: 配置JAVA环境变量的问题,先自己把环境变量配置好吧. 解决方案四: 重新配置下环境变量,可能是因为装了oracle数据库,导致环境变量冲突,把oracle的环境变量挪到eclipse的后面就可以了! 解决

jquery mobile中使用data-role=&amp;amp;quot;dialog&amp;amp;quot;弹出对话框的问题

问题描述 jquery mobile中使用data-role="dialog"弹出对话框的问题 如图,当页面除了一个"page"和"dialog"还有其它的 容器时,对话框后的背景就会显示没有样式的这个容器内容, 这是为什么呢,怎样才能让背景中不显示任何东西 解决方案 试试把背景内容放到另一个page中 你说的data-role =dialog 我没注意到 这个属性... 另外 可以看看 . data-role=popup http://www.

mfc-MFC弹出对话框后,鼠标进过对话框形状会变化,有没有大神知道怎么解决啊

问题描述 MFC弹出对话框后,鼠标进过对话框形状会变化,有没有大神知道怎么解决啊 MFC弹出对话框后,鼠标进过对话框形状会变化,有没有大神知道怎么解决啊 解决方案 WM_MOUSEHOVER/WM_MOUSELEAVE 解决方案二: 另外可能还需要处理WM_SETCURSOR设置鼠标样式 解决方案三: 判断鼠标的焦点,然后修改鼠标的状态 解决方案四: 出炉处理Wm_mouseleave消息

php弹出对话框实现重定向代码

 本为大家介绍下使用php或js弹出对话框实现重定向,具体示例如下,感兴趣的朋友不要错过 1 利用js 实现  代码如下: if(!$this->userInfo){  $alert_msg = "激活链接错误";  echo"<SCRIPT LANGUAGE='javascript'>alert('$alert_msg');window.location='$redirect_url';</SCRIPT>";  //redirect(

js showModalDialog 弹出对话框的简单实例

 本篇文章主要是对js_showModalDialog弹出对话框的简单实例(子窗体) 进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="showdialog_dialog.aspx.cs" Inherits="WSHelpDoc_showdialog_dialog" %>   代码如下: &

jQuery 弹出层 弹出对话框

jQuery 弹出层 弹出对话框 可以设置大小,ajax内容弹出,背景等各种调整 演示   XML/HTML Code                   <script> $(document).ready(function() { ClassyLightbox.init({ override:true, background: 'white', centerOnResize: true, fade: true }); $('#alert').click(function() { alert

点击TrueDbGrid控件中的一项,弹出对话框,把这一横行显示在弹出的对话框中

问题描述 点击TrueDbGrid控件中的一项,弹出对话框,把这一横行显示在弹出的对话框中 点击TrueDbGrid控件中的一项,弹出对话框,把这一横行显示在弹出的对话框中 解决方案 在对话框中定义一个数组型public变量,比如叫data form2.data = 赋值 form2.show 解决方案二: 在双击行事件中写新建窗体的代码