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

上一篇 / 下一篇  2008-06-30 15:46:21 / 个人分类:Eclipse插件开发


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


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

颜色对话框(ColorDialog)

ITPUB个人空间)hT f u\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)VA!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{:z Kz4v N&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个人空间g5H V: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/S MvH&PP0新建文件对话框,用户可以设置对话框的初始路径、标题和扩展名过滤等属性,如下代码片段所示。
%H*dN%nsB0//新建文件对话框,并设置为打开的方式
ch&[%e0{ ra,Z0FileDialog fd = new FileDialog(s, SWT.OPEN);
{8D D}Y WR}0//设置文件对话框的标题
Wg(T8g&lb*rg0fd.setText("Open");ITPUB个人空间8M&wV? s
//设置初始路径ITPUB个人空间&YD*}~`~AY
fd.setFilterPath("C:/");ITPUB个人空间H-e4pUF8v @j
//设置扩展名过滤
tx|J)Lv*{C)@0String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };ITPUB个人空间V%N!wAP1yyr&G.`
fd.setFilterExtensions(filterExt);
#Q0Q"iMI5~kqU0//打开文件对话框,返回选择的文件ITPUB个人空间2rU`Na#uH5h
String selected = fd.open();ITPUB个人空间 QE2BO: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
//新建目录对话框
9OIs I`;F(X0DirectoryDialog dlg = new DirectoryDialog(shell);ITPUB个人空间ZP|0T ^#Q8a
//设置初始路径ITPUB个人空间l_/q4z)NN\b
dlg.setFilterPath(text.getText());
kSr3SLp0//设置对话框标题ITPUB个人空间l6fUl!zd
dlg.setText("SWT's DirectoryDialog");
JW}5Gk7VI7c1z#T0//设置提示信息ITPUB个人空间n*{ l(_ Mx o
dlg.setMessage("Select a directory");ITPUB个人空间7dK9|D}T9j
//打开对话框,返回目录ITPUB个人空间 hq*A S,`p&zJ;y
String dir = dlg.open();ITPUB个人空间[D-N|)X%K$enCx
if (dir != null) {
8l2|+G^|&ru AI2RF:[0// Set the text box to the new selection
pay?&` t2@k0text.setText(dir);ITPUB个人空间/{A-l_8tx[(X
}


Q5N4\Q,[0打印对话框(PrintDialog)


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

ITPUB个人空间 @ vv{ s Q~|wt9a


b8N\3\1c Dpw0图5 打印对话框


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


TAG:

引用 删除 Guest   /   2008-07-25 09:20:57
1
引用 删除 Guest   /   2008-07-07 14:59:02
1
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-05  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 8691
  • 日志数: 43
  • 文件数: 11
  • 建立时间: 2008-02-14
  • 更新时间: 2008-09-05

RSS订阅

Open Toolbar