通常操作系统会对一些常用对话框进行封装,SWT的一个理念就是“不重新发明轮子”,它没有尝试自己重新定义这些系统对话框,而是直接引用,这样不但提高系统的效率,同时也照顾了用户的视觉体验。
在SWT的开发过程中,用户会经常使用到打印对话框、颜色对话框、字体对话框、文件对话框和目录对话框等对话框等,在些将简单介绍这些对话框的使用。
颜色对话框(ColorDialog)
当用户要改变颜色的设置,就要用到颜色对话框,如图1所示。
图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所示。
图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所示。
图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所示。
图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对象。
图5 打印对话框
对话框是GUI程序开发中经常用到的组件。在此介绍了常用的一些系统对话框,读者应该对对话框的功能和使用场景有所了解。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13081368/viewspace-366443/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13081368/viewspace-366443/