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

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

最新文章

  1. Leetcode: Unique Substrings in Wraparound String
  2. 文本过滤工具之AWK
  3. 难道只有我一个人想吐槽npm这种包管理方式么
  4. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
  5. java web 开发 购物车功能的实现
  6. db2存储过程
  7. CSS3中颜色线性渐变实战
  8. 关于子线程使用Toast报错Can't create handler inside thread that has not called Looper.prepare()的解决办法
  9. zedGraph
  10. linux 获取文件系统信息(磁盘信息)
  11. easyui datagrid datagrid-filter bug
  12. Android Screen Monitor使用
  13. Redis进阶实践之五Redis的高级特性
  14. Filter的过滤链理解
  15. linux文件 特殊权限的使用
  16. c++学习过程
  17. Maven CXF wsdl2Java String生成JAXBElement<Xxx> 解决方法
  18. Android launchMode SingleTask newIntent 的问题
  19. 黑马day11 不可反复度&解决方式
  20. hdu 1003 Max Sum (动态规划)

热门文章

  1. Java的修饰符
  2. Android基础总结(十一)
  3. git简易操作
  4. Linux 建立文件夹的链接
  5. Think twice before doing~
  6. javaScript timer控制
  7. sql笨办法同步数据
  8. Node.js中exports与module.exports的区别
  9. 光驱SSD安装Win7+ubuntu系统双系统
  10. iOS多线程-GCD之常用函数