Java开发笔记(一百三十四)Swing的基本对话框
2019-08-16 12:08:52来源:博客园 阅读 ()
Java开发笔记(一百三十四)Swing的基本对话框
桌面程序在运行过程中,时常需要在主界面之上弹出小窗,把某种消息告知用户,以便用户及时知晓并对症处理。这类小窗口通常称作对话框,依据消息交互的过程,可将对话框分为三类:消息对话框、确认对话框、输入对话框,分别介绍如下:
1、消息对话框
这类对话框仅仅向用户展示一段文本,告诉用户发生了什么事情。它起到了提示的作用,但不支持用户干预事务。不管用户同意与否,都无法改变事件的进展。
在Swing框架中,消息对话框由消息的标题、内容、确定按钮组成。调用JOptionPane工具的静态方法showMessageDialog即可弹出消息对话框,该方法的第一个参数为消息框依赖的窗口对象,第二个参数为消息的内容文本,第三个参数为消息的标题文本,第四个参数为消息的图标类型,图标类型主要有下列五种:
JOptionPane.PLAIN_MESSAGE:无消息图标。
JOptionPane.INFORMATION_MESSAGE:灰圈信息图标,用于表示提示消息。
JOptionPane.QUESTION_MESSAGE:方框问号图标,用于表示确认消息。
JOptionPane.WARNING_MESSAGE:三角感叹图标,用于表示警告消息。
JOptionPane.ERROR_MESSAGE:红圈红叉图标,用于表示错误消息。
下面是在主界面上显示消息对话框的代码例子:
// 显示消息对话框。消息对话框只有一个确定按钮 JOptionPane.showMessageDialog(frame, "系统即将关机,请赶紧保存文件", "致命错误", JOptionPane.ERROR_MESSAGE);
从以上代码可知,当前消息展示了系统出现异常的错误消息,程序运行后的对话框效果如下图所示。
2、确认对话框
这类对话框在展示事件说明的同时,给定几个可能的选项,以便用户做出恰当的选择,然后程序再根据用户的选择分别进行后续处理。
在Swing框架中,确认对话框由消息的标题、内容,以及若干选项按钮组成。有时选项控件包括“是”、“否”、“取消”三个按钮,有时包括“确定”、“取消”两个按钮。调用JOptionPane工具的静态方法showConfirmDialog即可弹出确认对话框,该方法的输入参数说明同前述的showMessageDialog方法,不同之处在于,showConfirmDialog方法存在整型返回值,返回参数主要有以下三个数值,代表用户单击了哪个按钮:
1、JOptionPane.YES_OPTION:表示肯定的选择,对应“是”按钮与“确认”按钮。
2、JOptionPane.NO_OPTION:表示否定的选择,对应“否”按钮。
3、JOptionPane.CANCEL_OPTION:表示取消选择,也就是不做任何选择,对应“取消”按钮。
下面是在主界面上显示确认对话框,并开展分支处理的代码例子:
// 显示确认对话框。确认对话框有“是”、“否”、“取消”三个按钮,该对话框返回哪个按钮被单击了 // 该对话框不支持类型QUESTION_MESSAGE,且固定显示问号图标 int result = JOptionPane.showConfirmDialog(frame, "尊敬的用户,你真的要卸载我吗?", "温馨提示", JOptionPane.INFORMATION_MESSAGE); if (result == JOptionPane.YES_OPTION) { // 单击了“是”按钮 label.setText("您选择了“是”按钮。虽然依依不舍,但是只能离开了"); } else if (result == JOptionPane.NO_OPTION) { // 单击了“否”按钮 label.setText("您选择了“否”按钮。让我再陪你三百六十五个日夜"); } else if (result == JOptionPane.CANCEL_OPTION) { // 单击了“取消”按钮 label.setText("您选择了“取消”按钮。感谢你依然如昨的不变情怀"); }
运行包含上面代码的测试确认程序,一番操作后弹出如下图所示的确认对话框。
分别单击对话框上面的三个按钮,程序主界面的显示效果如下面三张图所示。
3、输入对话框
这类对话框需要用户提供更加详细的信息,而不仅仅“是”或者“否”的选择,例如:要求用户输入一段文本,要求用户在一组列表里选择其中一个,诸如此类。
在Swing框架中,输入对话框由消息的标题、内容、确认按钮、取消按钮,以及接收用户输入的控件组成。对于文本输入的情况,对话框上会显示单行输入框TextField;对于列表选择的情况,对话框上会显示下拉框ComboBox。调用JOptionPane工具的静态方法showInputDialog即可弹出输入对话框,只输入文本的话,该方法依旧填写四个入参:窗口对象、内容文本、标题文本、图标类型;但若要求在列表中选择,则该方法还需增加几个入参,用来显示列表的文本数组,以及默认选中的列表元素。
下面是在主界面上显示文本输入对话框的代码例子:
// 显示输入对话框。输入对话框有“确认”、“取消”两个按钮,该对话框返回输入框内的文本 String result = JOptionPane.showInputDialog(frame, "请输入您要查询的商品名称:", "搜索一下", JOptionPane.QUESTION_MESSAGE); label.setText("您输入的商品名称是:"+result);
运行以上的测试输入代码,通过单击按钮弹出文本输入对话框,再键入编辑文本,这时的对话框效果如下图所示。
接着分别单击确认和取消按钮,两种情况之下的程序主界面效果如以下两张图所示。
还有在主界面上显示列表输入对话框的代码例子:
Object[] options = new Object[]{"鱼香肉丝饭", "香菇滑鸡饭", "黑椒牛排饭"}; // 显示下拉对话框。下拉对话框需要传入选项数组以及默认选项,该对话框返回下拉框的选择项 Object result = JOptionPane.showInputDialog(frame, "请选择盒饭名称", "吃饭啦", JOptionPane.WARNING_MESSAGE, null, options, options[0]); label.setText("您点的盒饭是:"+result);
运行以上的测试列表代码,通过单击按钮弹出的对话框初始界面如下图所示。
然后单击下拉框,并在弹出的下拉列表中选择某一项,选完前后的对话框效果如以下两张图所示。
最后单击对话框里的确认按钮,程序主界面便展示了刚才列表选择的结果,正如下图所示。
注意到这些对话框统统调用了静态方法,既然没有事先创建对话框对象,也就无法调用setFont方法设置对话框内部控件的字体了。此时可通过UIManager工具单独给对话框设置字体,详细的设置代码如下所示:
Font font = new Font("中号", Font.PLAIN, 16); // 设置对话框内部按钮的展示效果 UIManager.put("Button.font", new FontUIResource(font)); // 设置对话框内部标签的展示效果 UIManager.put("Label.font", new FontUIResource(font)); // 设置对话框内部输入框的展示效果 UIManager.put("TextField.font", new FontUIResource(font)); // 设置对话框内部下拉框的展示效果 UIManager.put("ComboBox.font", new FontUIResource(font));
更多Java技术文章参见《Java开发笔记(序)章节目录》
原文链接:https://www.cnblogs.com/pinlantu/p/11318239.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash