Soso的七维空间

Seven_spacE 我是一只小小小小小小鸟~

用户操作
[即时聊天] [发私信] [加为好友]
芥子ID:Sozell
86483次访问,排名1099好友0人,关注者0
Sozell的文章
原创 83 篇
翻译 6 篇
转载 25 篇
评论 23 篇
芥子~的公告
欢迎喜欢讨论的人加QQ群:8882320 声明:CSDN
最近评论
agjyfm:wow gold
Sozell:我把Demo和Src放这里了,内部有使用说明。
http://download.csdn.net/source/350429
Sozell:一时半会儿没地方放,看来谁要我就给他email吧,呵呵。
Sozell:呵呵,看来有动力继续翻译下去了,虽然翻译了很烂(哎,自己的E语水平真是,郁闷啊……)
yixilee:Thank you very much!
今天认真看了SWT方面的知识。可能不太看api吧,在这篇文档学到了SWT.CR是表示回车,谢谢哈。
文章分类
收藏
相册
Eclipse
SchooL
かわいい絵
Time
访问量
清水岛
个人徽标
偶的怨念池子
我的主页
我的邮箱
软件工程
文档
资源池
CSND
E文字体下载
GODTTJ
Kuku's Blog
linux英雄站
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

翻译 Basic SWT Widegts 1st收藏

新一篇: Basic SWT Widegts 2nd | 旧一篇: ERP的解释

前言:呵呵,第一次翻译别人的东西,不足之处多多指教,不过确实有些地方我也不是很了解那。 

Basic SWT Widegt                                

by Shantha Ramachandran

Department of Computer Science, Uniersity of Manitoba, Winnipeg, Canada

Overview:

这篇文档我们讲述基本的SWT(Standed Widget Tollkit)的widget(Soso said:也可以说成是控件,窗口小部件,但是我还是愿意称它为widget)。我们会把注意力放到用SWT来开发Java程序上来,而不是通过插件的方式来拓展Eclipse这个平台。如果你还没有准备好通过Eclipse的平台来运行一个基本的SWT程序的话,那么你回头看一下前面关于安装Eclipse以及SWT库的章节。(Soso said:去www.eclipseworld.org看看也可以,我有问题都会去那里翻帖子,还是很有帮助的。)

Widget Structure:

这里说下widget的基本组成。要建立一个使用SWT widgets的程序,你需要在程序开头导入下面这些包:

org.eclipse.swt.*;

org.eclipse.swt.widegts.*;

建立一个SWT widgets程序,你必须创建一个Display和一个Shell对象:

Display display = new Display();

Shell shell = new Shell(display);

display是一个包含了所有GUI组件的对象。display是看不到的,不过添加到里面去的components(组件)却是可见的。一般来讲,一个程序只需要一个display对象。而shell是程序中的窗口。你可以在一个程序里面创建很多的shell,这些shell可以依附在前段(top level)的display(主窗口)或者是依附于其他的shell(子窗口)。就和Swing widget差不过,SWT的widgets的property也是通过类似下面的方式初始化或者是修改。你可以像这样来设置shell的size:

shell.setSize(100, 100);

做完了初始化后,你要做的就是把这个shell打开(调用open方法)然后再执行一个事件的循环。这个事件循环是用来使得shell显示在屏幕上,你可以把这段代码放到初始化shell和widgets后的任何地方。当最外层的shell关闭的时候(可以是调用Shell.Close方法),那么display必须要调用dispose方法来释放资源。

shell.open();

while (!shell.isDisposed()) {

        
if (!display.readAndDispath())

                display.sleep();

        }


display.dispose();

现在你已经可以添加任何widgets到你的shell上面去了,我们先不用layout manager(布局管理器),用布局管理器来创建widgets稍稍有些复杂,接下来的例子先斗不用layout manager,以后我会详细介绍的。

Label:

label是用来显示一些文本的,一般来说,用户不能更改它的内容(当然,程序员是可以的咯)。

用下面的代码放一个label到你的shell上去:

Label label1 = new Label(shell, SWT.BORDER);

label可以用的风格有:BORDERCENTERLEFTRIGHT, WARP以及SEPARATOR。其中separator风格是比较特殊的,它让label显示为一条分隔线。和separator风格可以一起设置的还有HORIZONTALVERTICALSHADOW_INSHADOW_OUTSHADOW_NONE

接下来的代码将会创建5个label,其中两个是分隔线。第一个文字label有一个边框(border),第二个是一个普通的label,第三个是一个通过setBackground()方法设置了背景颜色的label。例子中的两个分隔线用了平行的风格,不同的是第一个添加了一个shadow(阴影)的风格。

Label label1 = new Label(shell, SWT.BORDER);
label1.setText(
"See no evil");
label1.setSize(
100,20);
label1.setLocation(
30,30);
Label sep1 
= new Label(shell, SWT.SEPARATOR| SWT.HORIZONTAL | SWT.SHADOW_IN);
sep1.setBounds(
30,60,100,20);
Label label2 
= new Label(shell, SWT.NONE);
label2.setText(
"Hear no evil");
label2.setSize(
100,20);
label2.setLocation(
30,90);
Label sep2 
= new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
sep2.setBounds(
30,120,100,20);
Label label3 
= new Label(shell, SWT.NONE);
label3.setSize(
100,20);
label3.setLocation(
30,150);
label3.setBackground(
new Color(display,200,111,50));
label3.setText(
"Speak no evil");

下面是显示的图形:

Text:

text的widget包含了一个用户可以修改的文本区域。

以下代码放置一个Text widget到shell上:

Text text1 = new Text(shell, SWT.BORDER);

它支持的风格有:BORDERH_SCROLLV_SCROLLMULTISINGLEREAD_ONLYWRAP

text widget可以设置一些有意思的属性。如果你的text是可以编辑的,那么你可以设置它的最大输入字符数:

text1.setTextLimit(30);

你也可以通过setEchoChar()方法创建一个密码样式的的text。这个方法的参数是你要代替显示的密码的字符。输入的字符串会被记录在text中,但是从外部看来,你只能看到一串的被你设置成代替显示的字符的队列:

text2.setEchoChar('*');

接下来的代码创建了三个text的widget。第一个有30个输入字符的限制;第二个把所有输入的字符显示成一组星号(*),就像密码区域中显示的一样;最后一个用setEditable()方法设置成只读,设置成只读的另外一个办法是在创建widget的时候,指定SWT.READ_ONLY属性。

你可以试着运行下面的代码,并且在text区域中输入些字符:

Text text1 = new Text(shell, SWT.BORDER);
text1.setText(
"Type something in here");
text1.setBounds(
10,10,200,20);
text1.setTextLimit(
30);
Text text2 
= new Text(shell, SWT.NONE);
text2.setEchoChar(
'*');
text2.setBounds(
10,50,200,20);
text2.setText(
"Password");
Text text3 
= new Text(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
text3.setBounds(
10,90,200,100);
text3.setEditable(
false);
text3.setText(
"Bet you can't type in here");

下面是这个shell的样子:

Button:

按钮是一个可以被用户点击用来执行某项过程的widget。

以下代码放置一个按钮到shell上:

Button button1 = new Button(shell, SWT.PUSH);

你可以把SWT.PUSH替换成任何SWT支持的按钮风格,它们包括:PUSHCHECKRADIOTOGGLEARROW。你还可以用FLATBORDERLEFTRIGHTCENTER的其中一种配合。

通过setText()方法来设置按钮显示的文字:

button1.setText("Hello");

要使得按钮可见,你还要设置它的大小以及位置。作为选择,你还可以通过setBounds来同时设定大小和位置:

button1.setLocation(0, 0);

button1.setSize(100, 20);

button1.setBounds(10, 10, 100, 100);

你还可以通过set方法设置它的样式,背景,图象和其他的属性。要给你的按钮添加一个事件处理,你首先要导入events包:

import org.eclipse.swt.events.*;

按钮的基本事件处理是selection event handler。当按钮被选择并按下时,这个selection event handler才被调用。我们添加一个listener给按钮来创建event handler:

button1.addSelectionListener(new SelectionAdapter()) {

public void widgetSelected(SelectionEvent e) {

System.out.println("Button1 was clicked");

}

});

这里有一个很小的例子组合了所有上面出现过的代码。它建立一个按钮,当被按下的时候,console(控制台)中显示“Button1 was clicked”,还有一个箭头按钮和一个带有toggle和flat风格的按钮。

Button button1 = new Button(shell,SWT.PUSH);
button1.setText(
"Click me");
button1.setLocation(
0,0);
button1.setSize(
100,20);
button1.addSelectionListener(
new SelectionAdapter() {
        
public void widgetSelected(SelectionEvent e) {
                System.out.println(
"Button1 was clicked");
        }

}
);
Button button2 
= new Button(shell, SWT.ARROW);
button2.setSize(
20,20);
button2.setLocation(
250,200);
Button button3 
= new Button(shell, SWT.FLAT|SWT.TOGGLE);
button3.setSize(
50,50);
button3.setLocation(
0,150);

图例:

先翻译到这里吧,看来还是很简单的,就是格式之类的东西麻烦了点,过段时间再翻译下(有可能就是几个小时后吧^_^)。其实也都是些基础的东西。

发表于 @ 2006年12月15日 12:29:00|评论(loading...)|编辑

新一篇: Basic SWT Widegts 2nd | 旧一篇: ERP的解释

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 芥子~