Swt/Jface中提供的dialog

Swt/Jface中提供了各种各样的Dialog,一般情况下就能满足我们的需求,现在把这些dialog介绍一下,
下一篇文章再继续将如何自定义Dialog
一、MessageDialog
1,MessageDialog的用法很简单,只需要一句话.


MessageDialog.openInfomation(shell,title,message);
MessageDialog.openConfirm(shell,title,message);
MessageDialog.openQuestion(shell,title,message);
MessageDialog.openError(shell,title,message);

2,这四个的不同之处有三点:
                              提示的图标、                  显示的按钮、                     返回值
openInfomation       类似i的图标                     一个确定                             void
openConfirm           问号图标                          确定和取消                        boolean
openQuestion          问号图标                         是和否                                 boolean
openError               一个X的图标                   确定                                     void

最后说一下,MessageDialog的大小不能根据内容自动调整,对于少量提示信息的时候显得大了些。
3,InputDialog输入的dialog
使用方法:

InputDialog inputDialog = new InputDialog(shell,"标题","提示信息","默认值",null);
if(inputDialog.open() == InputDialog.OK){
    String value = dialog.getValue();
}

注意最后一个参数是"验证器",如果想验证数据可以提供一个验证器,并在这里使用。验证其的写法:

public class MyValidator implements IInputValidaor{
    public String isValid(String newText){
        float value = 0;
        try{
            value = Float.valueOf(newText).floatValue();
        }catch(NumberFormatException e){
            return "错误:请输入数值";
        }
        if(value>0 && value<100){
            return null;
        }else{
            return "错误:请输入大于0,小于100的数";
        }
    }
}

然后改写定义语句为

InputDialog inputDialog = new InputDialog(shell,"标题","提示信息","默认值",new MyValidator());

二、上边说了MessageDialog不能自动调整大小,那什么能自动调整大小呢?答案是MessageBox.
同样继承自Dialog.
1,使用方法:MessageBox的使用方法稍微复杂,需要3句

MessageBox mb = new MessageBox(shell);
mb.setMessage("提示信息");
mb.open();

2,MessageBox同样可以控制图标和按钮数
是通过new的时候加入式样来实现的,例如

MessageBox mb = new MessageBox(shell,SWT._ICON_QUEST|SWT.YES|SWT.NO);

做过SWT开发的人对这种格式应该不陌生,到处都是。

图标的种类:
SWT.ICON_ERROR
SWT.ICON_INFORMATION
SWT.ICON_QUESTION
SWT.ICON_WARNING

按钮的组合:
SWT.OK
SWT.OK|SWT.CANCEL
SWT.YES|SWT.NO
SWT.YES|SWT.NO|SWT.CANCEL
SWT.RETRY|SWT.CANCEL
SWT.ABORT|SWT.RETRY|SWT.IGNORE
仔细看一下就是我们平时经常看到的各种对话框。
三、颜色选择对话框
不多说,使用方法几乎在swt中遍地都是的用法。

ColorDialog dialog = new ColorDialog(shell);
RGB rgb = dialog.open();
if(rgb != null){
    Color color = new Color(shell.getDisplay(),rgb);
}

注意color使用过后要dispose();
四、字体选择对话框
有了上边的一些经验其实在有eclipse这种编辑器的帮助下猜着就可以写了

FontDialog dialog = new FontDialog(shell);
FontData fontData = dialog.open();
if (fontDate != null){
    Font font = new Font(shell.getDisplay(),fontData);
}

同样在结束后font.dispose();
五、打印对话框,同上的使用方法,同上的需要dispose

PrintDialog dialog = new PrintDialog(shell);
PrintData printData = dialog.open();
if (printDate != null){
    Printer printer = new Printer(printerData);
}

六、文件选择对话框:同上
1,实现方法

FileDialog dialog = new FileDialog(shell,SWT.OPEN);
dialog.setFilterPath("c:\windows");//设置初始路径
String fileName = dialog.open();//返回的全路径(路径+文件名)

2,如果想选择多个文件,加上SWT.MULTI

FileDialog dialog = new FileDialog(shell,SWT.OPEN|SWT.MULTI);
String fileName = dialog.open();//返回最后一个选择文件的全路径
String[] fileNames = dialog.getFileNames();//返回所有选择的文件名,不包括路径
String path = dialog.getFilterPath();返回选择的路径,这个和fileNames配合可以得到所有的文件的全路径

3,加入filter

FileDialog dialog = new FileDialog(shell,SWT.OPEN|SWT.NULTI);
dialog.setFilterNames(new String[]{"可执行文件(*.exe),"Excel(*.xls),"所有文件""});
dialog.setFilterExtensions(new String[]{"*.exe","*.xls","*.*"});
//接受方法同2中的写法,不同就是加入了过滤器。

4,保存对话框
保存对话框并不提供保存功能,这个需要自己实现,它只提供界面,并得到用户选择的目录和输入的文件名

FileDialog dialog = new FileDialog(shell,SWT.SAVE);
String fileName = dialog.open();
本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2007/08/16/858267.html如需转载请自行联系原作者
kenty

Swt/Jface中提供的dialog相关推荐

  1. 关于SWT/JFace中其他常用的事件

    1.addSelectionListener:这个监听器最常用. 这个addSelectionListener是一个方法,addSelectionListener(SelectionListener ...

  2. JFace中Dialog类的使用方法

    2019独角兽企业重金招聘Python工程师标准>>> cyper的例子: 注意dialog.open()返回Dialog.OK而不是SWT.OK 窗体代码: public clas ...

  3. 如何在Eclipse 3.6.2中安装swt/JFace

    如何在Eclipse 3.6.2中安装swt/JFace 原文http://blog.csdn.net/nkliming/article/details/7790288 我之前一直想安装过swt,但是 ...

  4. 关于JFace中的右键菜单Action类,ActgionGroup类,MenuManager类

    Action类,ActionGroup类,MenuManager类介绍 SWT中菜单是Menu类,菜单项用MeauItem类来实现.但是在实际开发中,同一种功能会有多中表现形式, 例如:Eclipse ...

  5. Eclipse 3.7 3.x SWT/Jface 开发环境搭建

    Eclipse 3.7 3.x SWT/Jface 开发环境搭建 原文http://blog.csdn.net/kimsoft/article/details/7239651 1.准备工作 1.1.下 ...

  6. SWT/JFACE表格Table可编辑

    SWT/JFACE表格Table可编辑 2009-10-12 22:52 今天刚好遇到了这个问题写了个例子,. public class Test { public static String []N ...

  7. java的布局管理器_Java中提供了几种布局管理器

    近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于J ...

  8. Django中提供的6种缓存方式

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用: 缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...

  9. SQL Server 2005 中提供的隔离级别

    SQL Server 2005 中提供的隔离级别 隔离级别 脏读(可能的情况) 非可重复读取(可能的情况) Phantom(可能的情况) 并发控制 读取未提交 是 是 是 (无) 读取已提交 否 是 ...

最新文章

  1. 向Python女神推荐这些年我追过的经典书籍
  2. 关于Configuration.ConfigurationManager
  3. 深度学习在美图个性化推荐的应用实践
  4. 转载——CVE-2019-0807
  5. python中用于标识字符串的定界符_001.python-基础-Template的字符串格式化
  6. php怎么分割页面,用html如何把页面分割成多个文件,由多个文件拼接而成?
  7. java静态方法和非静态方法的区别_史上最全阿里 Java 面试题总结
  8. CA7 ROLL B 选项
  9. Mac版IntelliJ IDEA上手的一些必要设置
  10. 管理员说:CSDN博客,一天访问量1000就很好了
  11. WINCC 7.4 SP1 7.5 博图v16 硬件学习补丁
  12. LibFetion 应用程序
  13. 熟练操作mac系统只需十分钟(Mac新手必看)!!
  14. PHP 获取图片信息exif
  15. android设备当广告屏使用方法,Android手机与电视无线HDMI同屏器使用教程
  16. 域服务器安全策略应用,ad域服务器组策略命令
  17. AWS Lambda学习2:通过S3事件触发调用Lambda函数,实现缩略图地生成
  18. c语言怎样处理lrc文件格式,lrc文件的一般格式是什么_教你如何打开lrc文件 - 驱动管家...
  19. BI是什么意思?在企业应用中有哪些好处?
  20. Python爬虫之bili站的正确打开方式

热门文章

  1. 服务器文件储存,文件储存服务器
  2. 利用高带宽无线代替电缆应用于脑机接口信号传输
  3. mysql100万数据一键下载csv_使用PHP来导入包含100万条数据的csv文件,请问你最快多久能全部导入mysql 数据库?...
  4. 英伟达吞并Arm失败!英美欧盟一齐干涉,老黄还要给孙正义12.5亿美元分手费
  5. 放话挑战GPT-3!以色列推出参数多30亿、词条多5倍的新语言模型|公测不用排队...
  6. 北京对无人车的热情,华尔街都感受到了
  7. 谷歌自动重建了完整果蝇大脑神经图:40万亿像素,可在线交互,用了数千块TPU...
  8. 美国邮政署将展开测试自驾卡车运输服务
  9. 商务部数据揭示了零售行业的哪些新趋势?
  10. Silverlight 控件的验证