【原创】系统对话框(十四)


通常操作系统会对一些常用对话框进行封装,SWT的一个理念就是“不重新发明轮子”,它没有尝试自己重新定义这些系统对话框,而是直接引用,这样不但提高系统的效率,同时也照顾了用户的视觉体验。


在SWT的开发过程中,用户会经常使用到打印对话框、颜色对话框、字体对话框、文件对话框和目录对话框等对话框等,在些将简单介绍这些对话框的使用。

颜色对话框(ColorDialog)


当用户要改变颜色的设置,就要用到颜色对话框,如图1所示。

13081368_200806301547381.jpg


图1 颜色对话框


用户可以通过如下代码片段新建颜色对话框,并设置标签的颜色。
//新建颜色对话框
ColorDialog dlg = new ColorDialog(shell);
//设置默认的颜色
dlg.setRGB(colorLabel.getBackground().getRGB());
//设置标题字体
dlg.setText("Choose a Color");
//打开对话框
RGB rgb = dlg.open();
if (rgb != null) {
color.dispose();
color = new Color(shell.getDisplay(), rgb);
//设置标签的颜色
colorLabel.setBackground(color);
}


字体对话框(FontDialog)


用户可以通过字体对话框选择字体及字体的颜色,如图2所示。

13081368_200806301547382.jpg


图2 字体对话框

新建字体对话框比较简单,如下代码片段演示如何设置字体对话框的初始字体和颜色,以及选择了相应的字体和颜色后设置标签的字体和颜色。
// 新建字体对话框
FontDialog dlg = new FontDialog(shell);
//设置初始字体和颜色
if (font != null) dlg.setFontList(fontLabel.getFont().getFontData());
if (color != null) dlg.setRGB(color.getRGB());
//打开对话框
if (dlg.open() != null) {
if (font != null) font.dispose();
if (color != null) color.dispose();

//新建字体对象
font = new Font(shell.getDisplay(), dlg.getFontList());
//设置标签的字体
fontLabel.setFont(font);

//新建颜色对象
color = new Color(shell.getDisplay(), dlg.getRGB());
//设置标签颜色
fontLabel.setForeground(color);

文件对话框(FileDialog)


文件对话框是比较常用的对话框,当用户要从磁盘选择文件时将用文件对话框选取文件,如图3所示。

13081368_200806301547383.jpg


图3 文件对话框


新建文件对话框,用户可以设置对话框的初始路径、标题和扩展名过滤等属性,如下代码片段所示。
//新建文件对话框,并设置为打开的方式
FileDialog fd = new FileDialog(s, SWT.OPEN);
//设置文件对话框的标题
fd.setText("Open");
//设置初始路径
fd.setFilterPath("C:/");
//设置扩展名过滤
String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };
fd.setFilterExtensions(filterExt);
//打开文件对话框,返回选择的文件
String selected = fd.open();
System.out.println(selected);


目录对话框(DirectoryDialog)


目录对话框和文件对话框类似,用户可以通过目录对话框选择相应的目录,如图4所示。


13081368_200806301547384.jpg


图4 目录对话框


新建目录对话框,用户可以设置对话框的初始路径、标题和提示信息等属性,最后返回选择的目录,如下代码片段所示。
//新建目录对话框
DirectoryDialog dlg = new DirectoryDialog(shell);
//设置初始路径
dlg.setFilterPath(text.getText());
//设置对话框标题
dlg.setText("SWT's DirectoryDialog");
//设置提示信息
dlg.setMessage("Select a directory");
//打开对话框,返回目录
String dir = dlg.open();
if (dir != null) {
// Set the text box to the new selection
text.setText(dir);
}


打印对话框(PrintDialog)


打印对话框中用户能选择打印机和设置打印的一些选项,如图5所示。
新建打印对话框通过PrintDialog,例如“PrintDialog printDialog = new PrintDialog(s, SWT.NONE);”,另外,要打印相关的数据可以通过Printer对象。


13081368_200806301547385.jpg


图5 打印对话框


对话框是GUI程序开发中经常用到的组件。在此介绍了常用的一些系统对话框,读者应该对对话框的功能和使用场景有所了解。

fj.pngimage002.jpg

fj.pngimage004.jpg

fj.pngimage006.jpg

fj.pngimage008.jpg

fj.pngimage010.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13081368/viewspace-366443/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13081368/viewspace-366443/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值