Java程序设计之swt教程整理精品文档.docx
- 文档编号:16189093
- 上传时间:2023-07-11
- 格式:DOCX
- 页数:78
- 大小:726.96KB
Java程序设计之swt教程整理精品文档.docx
《Java程序设计之swt教程整理精品文档.docx》由会员分享,可在线阅读,更多相关《Java程序设计之swt教程整理精品文档.docx(78页珍藏版)》请在冰点文库上搜索。
Java程序设计之swt教程整理精品文档
(完整word版)Java程序设计之swt教程
编辑整理:
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)Java程序设计之swt教程)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)Java程序设计之swt教程的全部内容。
第4章SWT图形用户界面
本章要点
1.SWT程序开发步骤。
2.SWT常用组件的使用。
3.SWT的布局。
4.SWT的事件处理。
5.SWTDesigner简介。
本章难点
1.SWT常用组件的使用。
2.SWT的布局.
3.SWT的事件处理。
4.1SWT/JFace简介
SWT(StandardWidgetToolkit)即标准小窗口工具箱,是IBM公司推出的一种在Eclipse中使用的集成开发环境,SWT提供可移植的API,并与底层本机OSGUI平台紧密集成,它是一个与本地窗口系统集成在一起的小部件集和图形库。
SWT由JNI(JavaNativeInterface,Java本机接口)调用操作系统的内部API,因此运行速度快,能够获得与操作系统的内部应用程序相同的外观.
JFace是一个用户界面工具箱,也是一个易用、功能强大的图形包,它简化了常见的图形用户界面的编程任务。
SWT和JFace都是Eclipse平台上的主要组件.JFace是在SWT的基础上创建的,但JFace并不能完全覆盖SWT的功能,JFace和SWT的关系如图4.1所示。
由于JFace的功能更强大,因此做图形界面开发时一般优先选用JFace。
图4.1JFace和SWT的关系
4.1.1SWT程序开发步骤
在eclipse的plugins目录下,找到文件org.eclipse。
swt.win32.win32.x86_3.2。
1.v3235.jar,文件名中中3。
2.1是eclipse的版本号,v3235是SWT的序列号,不同的eclipse版本这两个数字也不同。
在DOS状态下,用jar命令将该文件解压,命令格式如下:
jarxforg.eclipse.swt。
win32。
win32。
x86_3.2.1.v3235。
jar
该命令将指定的文件org。
eclipse.swt.win32.win32。
x86_3.2。
1。
v3235.jar解压到当前目录下。
解压后得到四个DLL文件:
swt—win32-3235.dll,swt-awt-win32-3235。
dll,swt—gdip-win32-3235.dll和swt—wgl—win32-3235。
dll。
这四个文件就是SWT的原生库文件。
原生库文件为SWT通过JNI访问windows本地API提供了接口,为使Java程序在启动时能够访问这些文件,可以通过以下方法进行设置:
方法一:
将这四个DLL文件复制到jre的bin目录下。
方法二:
设置环境变量,在PATH中加入这几个dll文件所在的目录。
方法三:
在eclipse的Java项目中导入原生库文件。
操作方法是:
在eclipse的包资源管理器中,右单击项目名→导入→常规→文件系统→下一步→浏览→选择DLL文件所在目录→确定→勾选DLL文件→完成.
导入SWT的原生库文件后,还要在eclipse的Java项目中配置构建路径,添加外部JAR,将文件org。
eclipse.swt。
win32.win32.x86_3。
2.1.v3235.jar加入到项目中,操作方法是:
在eclipse的包资源管理器中,右单击项目名→构建路径→配置构建路径→库(L)→添加外部JAR→在eclipse的plugins文件夹中找到该jar文件→打开→确定。
例4.1在Java应用程序中使用SWT的组件。
操作步骤:
新建一个Java项目,项目名为:
sample4_1。
采用方法三在项目中导入原生库文件。
配置构建路径,将org.eclipse。
swt.win32.win32。
x86_3。
2。
1.v3235。
jar加入到项目中。
eclipse包资源管理器可以看到导入的原生库文件和引入的jar文件,如图4。
2所示.
在项目中新建一个类,文件名为HelloSWT.java。
在类文件中写入代码。
图4.2包资源管理器图4。
3程序运行结果
HelloSWT。
java文件内容如下:
packageedu。
ch4;
importorg.eclipse.swt.SWT;
importorg。
eclipse。
swt。
widgets。
Display;
importorg.eclipse。
swt.widgets。
Text;
importorg。
eclipse.swt.widgets。
Shell;
importorg。
eclipse.swt。
graphics.*;
classHelloSWT{
publicstaticvoidmain(String[]args){
Displaydisplay=newDisplay();//创建一个display对象。
Shellshell=newShell(display);//shell是程序的主窗体
shell.setLayout(null);//设置shell的布局方式
Texthello=newText(shell,SWT。
MULTI);//声明一个可以显示多行信息的文本框
shell。
setText("Java应用程序");//设置主窗体的标题
shell。
setSize(200,100);//设置主窗体的大小
Colorcolor=newColor(Display。
getCurrent(),255,255,255);//声明颜色对象
shell。
setBackground(color);//设置窗体的背景颜色
hello。
setText("Hello,SWTWorld!
\n\n你好,SWT世界!
”);//设置文本框信息
hello.pack();//自动调整文本框的大小
//shell.pack();//自动调整主窗体的大小
shell.open();//打开主窗体
while(!
shell.isDisposed()){//如果主窗体没有关闭则一直循环
if(!
display.readAndDispatch()){//如果display不忙
display.sleep();//休眠
}
}
display。
dispose();//销毁display
}
}
在包资源管理器中,右单击文件名HelloSWT。
java→运行方式→Java应用程序,程序运行结果如图4。
3所示。
该窗体具有典型的Windows风格。
分析本例的源代码,可以看到,创建一个典型的SWT应用程序需要以下步骤:
创建一个Display
创建一个或多个Shell
设置Shell的布局
创建Shell中的组件
用open()方法打开Shell窗体
写一个事件转发循环
销毁display
4。
1.2SWT中的包
SWT是Eclipse图形API的基础,本节简单介绍一下SWT中常用的包。
1.org。
eclipse.swt。
widgets
最常用的组件基本都在此包中,如Button、Text、Label、Combo等。
其中两个最重要的组件是Shell和Composite。
Shell相当于应用程序的主窗体;Composite是容纳组件的容器,相当于SWING中的Panel对象。
2.org。
eclipse.swt.layout
主要的界面布局方式在此包中.SWT对组件的布局也采用了AWT/SWING中的Layout和LayoutData结合的方式。
3.org.eclipse.swt.custom
对一些基本图形组件的扩展在此包中,比如其中的CLabel就是对标准Label组件的扩展,在CLabel上可以同时加入文字和图片。
在此包中还有一个新的布局方式StackLayout。
4.org.eclipse。
swt。
event
SWT采用了和AWT/SWING一样的事件模型,在包中可以找到事件监听类和相应的事件对象。
比如,鼠标事件监听器MouseListener,MouseMoveListener等,及对应的事件对象MouseEvent。
5.org。
eclipse.swt。
graphics
此包中包含针对图片、光标、字体或绘图API。
比如,可通过Image类调用系统中不同类型的图片文件。
6.org。
eclipse。
swt.ole.win32
对不同平台,SWT有一些针对性的API。
例如,在Windows平台,可以通过此包很容易的调用OLE组件,这使得SWT程序也可以内嵌IE浏览器或Word、Excel等程序。
4。
2SWT/JFace常用组件
SWT/JFace常用组件有按钮(Button类)、标签(Label类)、文本框(Text类)、下拉框(Combo类)和列表框(List类)等。
4.2。
1按钮组件
按钮(Button)组件是SWT中最常用的组件,Button类的构造方法是:
Button(Compositeparent,intstyle)
该方法有两个参数:
第一个参数parent是指Button创建在哪一个容器上。
Composite(面板)是最常用的容器,Shell(窗体)继承自Composite,此参数也能接受Shell和任何继承自Compsite的类。
第二个参数style用来指定Button的式样。
SWT组件可以在构造方法中使用式样(style)来声明组件的外观形状和文字的式样。
SWT组件的构造方法和Button类相似,参数的含义也相同.
1.Button组件常用式样
SWT.PUSH:
按钮.
SWT.CHECK:
多选按钮。
SWT。
RADIO:
单选按钮。
SWT.ARROW:
箭头按钮。
SWT.NONE:
默认按钮。
SWT.CENTER:
文字居中,与SWT.NONE相同。
SWT。
LEFT:
文字靠左。
SWT.RIGHT:
文字靠右。
SWT.BORDER:
深陷型按钮。
SWT.FLAT:
平面型按钮。
一个Button也可以指定多个式样,只要将指定的各个式样用符号“|”连接起来即可。
如:
Buttonbt=newButton(shell,SWT.CHECK|SWT.BORDER|SWT.LEFT);
表示创建的按钮bt是一个复选按钮(CHECK),深陷型(BORDER)、文字左对齐(LEFT)。
2.Button组件的常用方法
setText(Stringstring):
设置组件的标签文字。
setBounds(intx,inty,intwidth,intheight):
设置组件的坐标位置和大小(x轴坐标,y轴坐标,组件宽度width,组件高度height)。
setEnabled(Booleanenabled):
设置组件是否可用。
true:
可用(默认值),false:
不可用。
setFont(Fontfont):
设置文字的字体。
setForeground(Colorcolor):
设置前景色。
setBackgrount(Colorcolor):
设置背景色。
setImage(Imageimage):
设置显示的图片.
setSelection(Booleanselected):
设置是否选中(仅对复选框或单选框有效)。
true:
选中,false:
未选中(默认值)。
setToolTipText(Stringstring):
设置鼠标停留在组件上时出现的提示信息。
以上方法在其他组件中也可使用.
例4.2按钮示例。
按照例4.1的操作步骤建立项目、设置构建路径和引入原生库.类Sample4_2.java源代码如下:
packageedu。
ch4;
importorg。
eclipse.swt.*;
importorg。
eclipse.swt.widgets.*;
publicclassSample4_2{
publicstaticvoidmain(String[]args){
Displaydisplay=newDisplay();//创建一个display对象.
Shellshell=newShell(display);//shell是程序的主窗体
//shell.setLayout(null);//设置shell的布局方式
shell。
setText("按钮示例");//设置主窗体的标题
Buttonbt1=newButton(shell,SWT。
NULL);//创建默认按钮
bt1。
setText(”SWT.NULL”);//设置按钮上的文字
bt1.setBounds(10,10,75,30);//设置按钮显示位置及宽度、高度
Buttonbt2=newButton(shell,SWT.PUSH|SWT。
BORDER);//创建深陷型按钮
bt2。
setText("SWT.PUSH”);
bt2.setBounds(90,10,75,30);
Buttoncheck1=newButton(shell,SWT。
CHECK);//创建复选按钮
check1。
setText(”SWT.CHECK");
check1.setBounds(10,50,75,30);
Buttoncheck2=newButton(shell,SWT.CHECK|SWT。
BORDER);//创建深陷型复选按钮
check2。
setText("SWT.CHECK");
check2。
setBounds(90,50,75,30);
Buttonradio1=newButton(shell,SWT。
RADIO);//创建单选按钮
radio1.setText("SWT。
RADIO");
radio1.setBounds(10,90,75,30);
Buttonradio2=newButton(shell,SWT.RADIO|SWT.BORDER);//创建深陷型单选按钮
radio2.setText("SWT.RADIO");
radio2.setBounds(90,90,75,30);
ButtonarrowLeft=newButton(shell,SWT.ARROW|SWT。
LEFT);//创建箭头按钮(向左)
arrowLeft。
setBounds(10,130,75,20);
ButtonarrowRight=newButton(shell,SWT。
ARROW|SWT。
RIGHT|SWT.BORDER);
arrowRight.setBounds(90,130,75,20);
shell.pack();//自动调整主窗体的大小
shell.open();//打开主窗体
while(!
shell.isDisposed()){//如果主窗体没有关闭
if(!
display.readAndDispatch()){//如果display不忙
display。
sleep();//休眠
}
}
display。
dispose();//销毁display
}
}
运行结果如图4。
4所示。
图4。
4按钮图4.5标签
4。
2。
2标签组件
标签(Label类)组件是SWT中最简单的组件.Label类的构造方法和Button类相似,参数的含义与相同,格式如下:
Label(Compositeparent,intstyle)
Label类的常用式样有以下几种:
Label类常用的式样如下:
SWT。
CENTER:
文字居中。
SWT.RIGHT:
文字靠右.
SWT.LEFT:
文字靠左。
SWT。
NONE:
默认式样。
SWT.WRAP:
自动换行.
SWT.BORDER:
深陷型。
SWT.SEPARATOR:
分栏符,默认为竖线分栏。
SWT.HORIZONTAL:
横线分栏符。
例4。
3标签示例。
packageedu.ch4;
importorg。
eclipse.swt.*;
importorg。
eclipse。
swt。
widgets。
*;
importorg。
eclipse.swt.graphics。
Font;
publicclassSample4_3{
publicstaticvoidmain(String[]args){
Displaydisplay=newDisplay();//创建一个display对象.
Shellshell=newShell(display);//shell是程序的主窗体
//shell。
setLayout(null);//设置shell的布局方式
shell。
setText("标签示例");//设置主窗体的标题
Labellb1=newLabel(shell,SWT.BORDER|SWT.RIGHT);//深陷型、文字右对齐
lb1.setBounds(10,10,70,30);
lb1.setText(”标签1”);
lb1。
setFont(newFont(display,”黑体",14,SWT.BOLD));//设置文字的字体字号
lb1。
setForeground(Display.getCurrent().getSystemColor(SWT。
COLOR_BLUE));
Labellb2=newLabel(shell,SWT.CENTER);//文字居中的标签
lb2.setBounds(90,10,70,30);
lb2。
setText(”标签2”);
lb2.setFont(newFont(display,”宋体”,14,SWT.NORMAL));//设置文字的字体字号
Labellb3=newLabel(shell,SWT。
SEPARATOR|SWT。
BORDER);//竖直分栏符
lb3。
setBounds(10,50,70,30);
Labellb4=newLabel(shell,SWT.SEPARATOR|SWT.HORIZONTAL|SWT。
BORDER);
//水平分栏符
lb4。
setBounds(90,50,70,30);
shell。
pack();//自动调整主窗体的大小
shell.open();//打开主窗体
while(!
shell。
isDisposed()){//如果主窗体没有关闭则一直循环
if(!
display.readAndDispatch()){//如果display不忙
display.sleep();//休眠
}
}
display。
dispose();//销毁display
}
}
程序运行结果如图4。
5所示。
4.2。
3文本框组件
文本框(Text类)的式样如下:
SWT。
NONE:
默认式样.
SWT。
CENTER:
文字居中.
SWT.LEFT:
文字靠左.
SWT。
RIGHT:
文字靠右.
SWT.MULTI:
可以输入多行,须回车换行.
SWT.WRAP:
可以输入多行,到行尾后自动换行。
SWT.PASSWORD:
密码型,输入字符显示成“*”。
SWT.BORDER:
深陷型。
SWT.V_SCROLL:
带垂直滚动条。
SWT.H_SCROLL:
带水平滚动条。
例4.4各种文本框示例。
packageedu。
ch4;
importorg。
eclipse。
swt。
*;
importorg.eclipse。
swt.widgets.*;
publicclassSample4_4{
publicstaticvoidmain(String[]args){
Displaydisplay=newDisplay();//创建一个display对象。
Shellshell=newShell(display);//shell是程序的主窗体
shell。
setText(”文本框示例”);
Texttext1=newText(shell,SWT。
NONE|SWT。
BORDER);//带边框
text1.setBounds(10,10,70,30);
Texttext2=newText(shell,SWT。
PASSWORD);
text2.setBounds(90,10,70,30);
Texttext3=newText(shell,SWT。
MULTI|SWT.V_SCROLL|SWT。
H_SCROLL);
text3。
setBounds(10,50,70,70);
Texttext4=newText(shell,SWT.WRAP|SWT。
V_SCROLL);
text4.setBounds(90,50,70,70);
shell。
pack();
shell。
open();
while(!
shell。
isDisposed()){//如果主窗体没有关闭则一直循环
if(!
display.readAndDispatch()){//如果display不忙
display。
sleep();//休眠
}
}
display。
dispose();//销毁display
}
}
运行结果如图4.6所示.
图4。
6文本框图4.7下拉框
4.2。
4下拉框组件
1.下拉框(Combo类)的式样
SWT。
NONE:
默认式样。
SWT。
READ_ONLY:
只读。
SWT.SIMPLE:
无须单击下拉框,列表会一直显示。
2.下拉框(Combo类)的常用方法
add(Stringstring):
在Combo中增加一项.
add(Stringstring,intindex):
在Combo的第index项后插入一项。
deselectAll():
使Combo组件中的当前选择项置空.
removeAll():
将Combo中的所有选项清空。
setItems(String[]items):
将数组中的各项依次加入到Combo中。
select(intindex):
将Combo的第index+1项设置为当前选择项。
例4。
5下拉框示例。
packageedu.ch4;
importorg。
eclipse.swt。
*;
importorg.eclipse.swt.widgets。
*;
importorg。
eclipse.swt。
events。
*;
publicclassSample4_5{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 swt 教程 整理 精品 文档
![提示](https://static.bingdoc.com/images/bang_tan.gif)