`
robert_liu
  • 浏览: 131578 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java Swing中弹出对话框

    博客分类:
  • Java
阅读更多

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);  

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

}  

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

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]);      

  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 ,标准模式大致如下:

 

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; 
 
分享到:
评论
2 楼 qunhao12 2013-03-31  
楼主,我学java也有半年了,但在java的那些容器方面的了解总感觉心里没底,有什么书推荐或是有什么好的指点吗??谢谢  mail:qunhao12@126.com
1 楼 zhangjialu_vip 2011-08-27  
正需要呢

相关推荐

    (java)Swing中弹出对话框的几种方式

    在Java的Swing框架中,弹出对话框是与用户交互的一种常见方式,主要用于限制用户行为、提示用户操作结果或请求用户输入。JOptionPane类在Swing中扮演着关键角色,它提供了一系列静态方法用于创建各种标准对话框,如...

    java点击按钮弹出对话框

    总的来说,Java提供了多种方式来实现“点击按钮弹出对话框”的功能,无论你是使用Swing还是JavaFX,都可以根据项目需求选择适合的库和方法。通过熟练掌握这些技巧,你可以创建更加互动和用户友好的Java应用程序。

    JAVA的字体格式设置对话框代码

    JAVA的字体格式设置对话框,用swing实现,可设置字体的大小,类型和样式。

    弹出对话框

    在Java、Python、C#、JavaScript等编程语言中,创建弹出对话框有不同的方法。例如,在Java Swing或JavaFX中,我们可以使用JOptionPane类创建各种类型的对话框;在Python的Tkinter库中,我们可以使用messagebox模块;...

    点击按钮弹出对话框代码

    在JavaScript中,弹出对话框有几种常见的方法。最基本的有`alert()`用于显示警告信息,`prompt()`用于获取用户输入,以及`confirm()`用于请求用户确认。这些内置对话框都是阻塞式的,意味着它们会暂停页面的执行,...

    打开弹出对话框代码

    String message = "这是一个Java Swing弹出对话框"; JOptionPane.showMessageDialog(null, message, "警告", JOptionPane.INFORMATION_MESSAGE); } } ``` 对于C# Windows Forms或WPF,我们可以利用MessageBox类...

    在对话框中点击按钮弹出另外一个对话框

    同时,为了提高用户体验,应确保新弹出的对话框与原有对话框之间的逻辑关系清晰,避免频繁弹出对话框导致用户困扰。对话框的设计和使用是GUI编程中重要的一环,正确运用可以大大提高软件的易用性和用户满意度。

    点击按钮弹出对话框...........

    在软件开发中,点击按钮弹出对话框是一种常见的交互方式,用于向用户展示信息、获取输入或进行确认操作。对话框通常分为模态和非模态两种类型,模态对话框会阻塞用户对主窗口的操作,直到对话框关闭;而非模态对话框...

    java点击按钮弹出自定义对话框

    下面将详细介绍如何在Java中实现点击按钮后弹出自定义对话框的功能。 首先,Java提供了两种主要的对话框类型:JOptionPane和JDialog。JOptionPane是Swing库中的一个类,它提供了一些预定义的对话框样式,如信息...

    Java Swing 中文Api

    Swing还包含了诸如JOptionPane这样的对话框组件,用于弹出信息提示、确认对话或输入框。JTabbedPane允许在单个窗口中组织多个组件,而JSplitPane则可以实现窗口的分割,便于用户查看和操作多部分内容。 对于国际化...

    模拟MSN弹出式对话框示例

    4. **多线程**:为了不影响主程序的正常运行,弹出对话框的操作应在一个独立的线程中执行,防止阻塞主线程,确保程序的响应性。 5. **编程语言和库**:实现这一功能可以使用多种编程语言,如Java、C#、Python等。每...

    java Swing 文件批量上传 DEMO 源代码

    JProgressBar可以用来显示上传进度,而JOptionPane则可以用于弹出警告或确认对话框。 总的来说,这个Java Swing 文件批量上传DEMO涵盖了Java GUI编程、文件I/O、网络编程、多线程以及用户交互等多个方面,对于初学...

    java swing upload demo

    开发者可以通过JFileChooser的showOpenDialog或showSaveDialog方法来弹出对话框让用户选择文件。在“java swing upload demo”中,这个组件可能被用来让用户选择需要上传的文件。 在文件选择后,通常会使用java.io...

    swing弹出框

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。...通过理解并熟练使用这些Swing弹出框,开发者可以创建出用户友好且功能丰富的Java桌面应用程序。

    java swing 学习资料

    Swing 提供了装饰器模式,使得我们可以方便地为组件添加视觉效果,如JOptionPane用于弹出对话框,JOptionPane.showMessageDialog()方法可以创建一个简单的信息对话框。同时,Swing 还支持组件的可定制性,可以创建...

    最全的Java Swing示例程序

    11. JOptionPane:用于创建弹出对话框,如警告、确认、输入等。 Swing还支持事件处理,例如ActionListener接口用于处理按钮点击等动作事件,ItemListener用于监听单选按钮和复选框的选中状态变化。此外,Swing引入...

    深入浅出Java Swing程序设计_11394260.rar

    此外,Swing还包含了JTabbedPane用于创建多面板的界面,JSplitPane用于分割视图,以及JOptionPane用于弹出对话框。Swing也支持自定义外观,通过LookAndFeel API可以改变整个应用的视觉风格。 总的来说,"深入浅出...

    四种Java Swing日历组件

    用户点击文本框时,会弹出一个包含日历视图的对话框,用户可以在其中选择日期,然后选择的日期会显示在文本框内。这种设计简洁直观,适用于需要快速选择日期的情况。实现过程中,可以利用`JOptionPane`创建自定义...

    Java Swing 组件全演示

    例如,JPanel可以用于组织和管理子组件,而JDialog则用于创建弹出对话框。 布局管理器(LayoutManager)是Swing中控制组件在容器内排列的重要工具。不同的布局管理器有不同的排列策略,如FlowLayout(流式布局)、...

Global site tag (gtag.js) - Google Analytics