【原创】系统对话框(十四)
上一篇 / 下一篇 2008-06-30 15:46:21 / 个人分类:Eclipse插件开发
y|@U)@E$}:qy0通常操作系统会对一些常用对话框进行封装,SWT的一个理念就是“不重新发明轮子”,它没有尝试自己重新定义这些系统对话框,而是直接引用,这样不但提高系统的效率,同时也照顾了用户的视觉体验。
!w ?`d\O'J0在SWT的开发过程中,用户会经常使用到打印对话框、颜色对话框、字体对话框、文件对话框和目录对话框等对话框等,在些将简单介绍这些对话框的使用。
颜色对话框(ColorDialog)
ITPUB个人空间)hTfu\2O$x
当用户要改变颜色的设置,就要用到颜色对话框,如图1所示。
an'TNf%HIw;X0
!u;u-nNy!j0图1 颜色对话框
ITPUB个人空间bl[S%y8n
g5`9A
用户可以通过如下代码片段新建颜色对话框,并设置标签的颜色。ITPUB个人空间rG2MnE {_
//新建颜色对话框ITPUB个人空间.R{-}C6})TSi
ColorDialog dlg = new ColorDialog(shell);ITPUB个人空间,JKC$ai0o
//设置默认的颜色
8{MRW/SP+Zo7M&^0dlg.setRGB(colorLabel.getBackground().getRGB());ITPUB个人空间){s7s0d3RV*Gnu{ Yx
//设置标题字体ITPUB个人空间 D)V A!B!v,`)}%vF
dlg.setText("Choose a Color");ITPUB个人空间Z8n8IS z
//打开对话框
AO"J4N"JO3}.f0RGB rgb = dlg.open();
}6bS B/i0if (rgb != null) {ITPUB个人空间*hR,d3[V
color.dispose();
-I
m8|c|n5v`2p0color = new Color(shell.getDisplay(), rgb);
B]n?"O+K{#x0//设置标签的颜色ITPUB个人空间Z
v,V aqb&D
colorLabel.setBackground(color);
P8\2d"|uB}5N!\/U0}
H{:zKz4vN&C1}1`0字体对话框(FontDialog)
ITPUB个人空间/Y8C3c1?5J8bj:w
用户可以通过字体对话框选择字体及字体的颜色,如图2所示。ITPUB个人空间Flw
F&y4NWL
ITPUB个人空间/BL;N@zv?
图2 字体对话框
新建字体对话框比较简单,如下代码片段演示如何设置字体对话框的初始字体和颜色,以及选择了相应的字体和颜色后设置标签的字体和颜色。ITPUB个人空间5e XaKfm#o!qs:w9n
// 新建字体对话框
-H;@ a;Yo^ yb+w0FontDialog dlg = new FontDialog(shell);
L)|7^s`\9[0//设置初始字体和颜色ITPUB个人空间K,y,` ZhK,G@t8}
if (font != null) dlg.setFontList(fontLabel.getFont().getFontData());ITPUB个人空间3c%SAK$d;oE$P
if (color != null) dlg.setRGB(color.getRGB());ITPUB个人空间g5HV:k)` s
//打开对话框
O)o)PK!A1B-Q7`0if (dlg.open() != null) {ITPUB个人空间i5^2uRZi']
if (font != null) font.dispose();ITPUB个人空间.W.t @Z | m(p
if (color != null) color.dispose();ITPUB个人空间l]b+mfw8CK1P'i
/PrGM+D
wR;G6^7m0//新建字体对象ITPUB个人空间"ZC2L;RV:c.S,s2c
font = new Font(shell.getDisplay(), dlg.getFontList());ITPUB个人空间5]"c({,l-c-g[
]
//设置标签的字体
2P-^;UvN-A]0fontLabel.setFont(font);
4C%OX0a`$y2{2T0
xp"M M0DFA.b|0//新建颜色对象ITPUB个人空间7xX*b&R*Fn
color = new Color(shell.getDisplay(), dlg.getRGB());
F!{|R`"dt0//设置标签颜色ITPUB个人空间1k|-s#p2{.W
L
fontLabel.setForeground(color);ITPUB个人空间4w3D(R8r.l7s0]7|$G
ITPUB个人空间%{Y,YDV3yp
文件对话框(FileDialog)
ITPUB个人空间 ^Pwb6i;e^
文件对话框是比较常用的对话框,当用户要从磁盘选择文件时将用文件对话框选取文件,如图3所示。
?H3z#i,MC$_9O/s0
ITPUB个人空间4o*U8b:V+K.A}H
图3 文件对话框
#cM/SMvH&PP0新建文件对话框,用户可以设置对话框的初始路径、标题和扩展名过滤等属性,如下代码片段所示。
%H*dN%nsB0//新建文件对话框,并设置为打开的方式
ch&[%e0{ ra,Z0FileDialog fd = new FileDialog(s, SWT.OPEN);
{8D D}YWR}0//设置文件对话框的标题
Wg(T8g&lb*rg0fd.setText("Open");ITPUB个人空间8M&wV?s
//设置初始路径ITPUB个人空间&YD*}~`~AY
fd.setFilterPath("C:/");ITPUB个人空间H-e4p UF8v@j
//设置扩展名过滤
tx|J)Lv*{C)@0String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };ITPUB个人空间V%N!w AP1yyr&G.`
fd.setFilterExtensions(filterExt);
#Q0Q"iMI5~kqU0//打开文件对话框,返回选择的文件ITPUB个人空间2rU`Na#uH5h
String selected = fd.open();ITPUB个人空间
Q E2BO:q:J:W-m
System.out.println(selected);
p?*Et4Wl/f!MFD0目录对话框(DirectoryDialog)
ITPUB个人空间+zw vwd#t\6TQ
目录对话框和文件对话框类似,用户可以通过目录对话框选择相应的目录,如图4所示。
0r.z+Hx,C!RQb0
ITPUB个人空间'Lw%MFpI JZ
图4 目录对话框
GP ~DFl^H0新建目录对话框,用户可以设置对话框的初始路径、标题和提示信息等属性,最后返回选择的目录,如下代码片段所示。ITPUB个人空间:`?+j+m3H3z+Tc
//新建目录对话框
9OIsI`;F(X0DirectoryDialog dlg = new DirectoryDialog(shell);ITPUB个人空间ZP|0T^#Q8a
//设置初始路径ITPUB个人空间l_/q4z)NN\b
dlg.setFilterPath(text.getText());
kSr3S Lp0//设置对话框标题ITPUB个人空间l6fUl!zd
dlg.setText("SWT's DirectoryDialog");
J W}5Gk7VI7c1z#T0//设置提示信息ITPUB个人空间n*{
l(_
Mx
o
dlg.setMessage("Select a directory");ITPUB个人空间7dK9|D}T9j
//打开对话框,返回目录ITPUB个人空间
hq*A S,`p&z



