9SWT程序1Word下载.docx
- 文档编号:15782030
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:20
- 大小:93.67KB
9SWT程序1Word下载.docx
《9SWT程序1Word下载.docx》由会员分享,可在线阅读,更多相关《9SWT程序1Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
3.org.eclipse.swt.events.所有监听器接口和事件类都在这个package中
4.org.eclipse.swt.SWT.这是一个类,它仅由public,static,final的int型域构成。
换句话说,这个类定义了一批int型常量。
这些常量有将近400百个,从常量的名字可以知道这个常量的含义。
5.org.eclipse.swt.graphics.这个类与画图,字体,颜色有关,只要使用这方面的类就需要导入这个包。
三.Display类
这个类位于org.eclipse.swt.widgets包,它的对象是操作系统与SWT程序之间的桥梁。
SWT程序是事件驱动的程序,当事件发生时,Display对象从操作系统的事件队列读取事件,然后把它分发给处理这个事件的对象。
当没有事件发生时,Display对象暂时休眠,使SWT程序放弃CPU资源。
绝大多数情况下一个SWT程序需要且只需要一个Display对象。
Display的构造函数和常用方法如下:
1.Display()
创建一个新的Display对象
2.booleanreadAndDispatch()
从操作系统的事件队列读一个事件,适当地分发该事件。
如果操作系统的事件队列还有未处理的事件,返回true,否则返回false。
3.voidsleep()
引起SWT程序进入休眠状态,直到有事件到达或被唤醒
四.Shell类
运行一个SWT程序,会在屏幕上出现一个窗口,内含菜单,按钮,文本等组件。
这个窗口就是Shell类对象。
“shell”一词的本意是“贝类,坚果等的壳,外壳”。
SWT借用shell一词表示窗口,意思是它是一个外壳,其内含有各类组件。
Shell的构造函数和常用方法如下:
1.Shell(Display
display,int
style)
利用给定的Display实例和样式常量,构造一个Shell实例。
这个Display对象就是SWT程序与操作系统之间的桥梁。
这里最常用的样式是SWT.MAX,SWT.MIN和SWT.CLOSE,分别表示这个窗口有最大化,最小化和关闭钮。
这些常量都是org.eclipse.swt.SWT类中定义的int型常量,可以用按位或操作把它们连接起来,例如SWT.CLOSE|SWT.MAX|SWT.MIN表示窗口同时具有最大化,最小化和关闭钮。
2.voidsetBounds(int
x,int
y,int
width,int
height)
3.voidsetText()
4.voidopen()
5.voidclose()关闭窗口
6.voiddispose()放弃窗口及其子孙的操作系统资源。
五.Display和Shell的使用模式.
一个SWT程序必须有一个Display对象和一个窗口,因此如下代码是必须的:
Displaydisp=newDisplay();
//创建一个Display对象
Shellshell=newShell(disp,SWT.CLOSE|SWT.MAX|SWT.MIN);
//创建窗口
shell.setText(“第一个SWT程序”);
//设置窗口字符串
shell.setBounds(10,10,500,300);
//设窗口位置及大小。
shell.open();
//打开窗口
执行open方法会在屏幕上显示一个窗口,但是随着open方法的结束程序也随之结束,实际上窗口只是在屏幕上一闪即逝。
因此需要如下的代码:
while(!
shell.isDisposed())
if(!
disp.readAndDispatch())disp.sleep();
这段代码含义是:
只要shell没有被破坏,disp就去操作系统的事件队列中取出并分发事件,如果没有事件,那么暂时休眠。
因此,SWT程序的最顶层的模式是
创建Display对象disp
创建Shell对象shell
设置shell外观
添加其它组件
if(!
六.实例
下面两个SWT程序都只显示一个无控件的窗口,都体现了这个模式
程序1.
publicclassSWT_introduction
{
publicstaticvoidmain(String[]args)
{
Displaydisp=newDisplay();
//创建窗口
shell.setText("
第一个SWT程序"
);
shell.setBounds(10,10,500,300);
//添加其它组件
shell.open();
while(!
if(!
}
}
程序2.
classwin
Displaydisp=newDisplay();
Shellshell=newShell(disp,SWT.CLOSE|SWT.MAX|SWT.MIN);
publicwin()
第一个SWT程序---另一个"
winw=newwin();
Displaydisp=w.disp;
Shellshell=w.shell;
这两个程序都体现了这个模式,还可以使用其它方案表达这个模式。
如何安排这两段代码是由具体的问题和程序员的习惯决定的。
2.事件处理及事件驱动的程序设计.
一.一个简单SWT程序
首先通过一个简单的SWT程序看事件驱动的程序是如何实现的。
例.
1.在窗口上放置一个按钮(Button),按钮上显示“按钮”字样。
再在窗口上放置一个文本(Text,可以用于输入)。
2.在按钮上注册监听器,使得按下按钮时,按钮上的文字被写入到文本。
3.在文本上注册监听器,使得当文本内容改变时检查输入的合法性,约定只能在文本中输入数字才是合法的。
Shellshell=newShell(disp,SWT.CLOSE|SWT.MAX|SWT.MIN);
Buttonb=newButton(shell,SWT.PUSH);
;
Textt=newText(shell,SWT.SINGLE);
shell.setBounds(20,20,800,500);
t.setBounds(20,20,150,30);
b.setBounds(200,20,80,25);
b.setText("
1234"
//定义局部类,它实现SelectionListener。
//方法widgetSelected把按钮b上的串接到文本t之后。
classlistenerimplementsSelectionListener
{
publicvoidwidgetDefaultSelected(SelectionEvente){}
publicvoidwidgetSelected(SelectionEvente)
{
t.append(b.getText());
}
}
//定义一个listener类对象
SelectionListenerjtq=newlistener();
//按钮b注册对象jtq为SelectionListener(选择监听器),
//每当按下按钮b,按钮b都会创建一个SelectionEvent对象e
//然后使用e调用监听器jtq的widgetSelected方法,实现事件处理。
b.addSelectionListener(jtq);
System.out.println(jtq.getClass().getName());
System.out.println(b.getClass().getName());
//上面的局部类只创建一个对象,因此可以用匿名类代替。
//定义匿名类,它实现VerifyListener接口。
//文本t注册一个匿名类对象为监听器,
//每当文本t内容被修改,t都会创建一个VerifyEvent对象e
//然后调用这个匿名类对象的verifyText方法,执行输入合法性检验。
t.addVerifyListener
(
newVerifyListener()//创建匿名类及其一个对象。
publicvoidverifyText(VerifyEvente)//实现接口方法
{
charc;
e.doit=true;
//doit赋值true,接受操作
//e.text是即将插入的新文本
for(inti=0;
i<
e.text.l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SWT 程序