Java程序设计之swt教程Word文档格式.docx
- 文档编号:20516243
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:17
- 大小:778.01KB
Java程序设计之swt教程Word文档格式.docx
《Java程序设计之swt教程Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计之swt教程Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
SWT程序开发步骤
在eclipse的plugins目录下,找到文件,文件名中中是eclipse的版本号,v3235是SWT的序列号,不同的eclipse版本这两个数字也不同。
在DOS状态下,用jar命令将该文件解压,命令格式如下:
jarxf该命令将指定的文件解压到当前目录下。
解压后得到四个DLL文件:
,,和。
这四个文件就是SWT的原生库文件。
原生库文件为SWT通过JNI访问windows本地API提供了接口,为使Java程序在启动时能够访问这些文件,可以通过以下方法进行设置:
方法一:
将这四个DLL文件复制到jre的bin目录下。
方法二:
设置环境变量,在PATH中加入这几个dll文件所在的目录。
方法三:
在eclipse的Java项目中导入原生库文件。
操作方法是:
在eclipse的包资源管理器中,右单击项目名→导入→常规→文件系统→下一步→浏览→选择DLL文件所在目录→确定→勾选DLL文件→完成。
导入SWT的原生库文件后,还要在eclipse的Java项目中配置构建路径,添加外部JAR,将文件加入到项目中,操作方法是:
在eclipse的包资源管理器中,右单击项目名→构建路径→配置构建路径→库(L)→添加外部JAR→在eclipse的plugins文件夹中找到该jar文件→打开→确定。
例在Java应用程序中使用SWT的组件。
操作步骤:
新建一个Java项目,项目名为:
sample4_1。
采用方法三在项目中导入原生库文件。
配置构建路径,将加入到项目中。
eclipse包资源管理器可以看到导入的原生库文件和引入的jar文件,如图所示。
在项目中新建一个类,文件名为。
在类文件中写入代码。
图包资源管理器图程序运行结果
文件内容如下:
package;
importclassHelloSWT{
publicstaticvoidmain(String[]args){
Displaydisplay=newDisplay();
etSystemColor);
Labellb2=newLabel(shell,;
etText("
包"
);
newMenuItem(newFileMenu,.setText("
类"
}
MenuItemopenFileItem=newMenuItem(fileMenu,;
("
打开&
O"
MenuItemexitItem=newMenuItem(fileMenu,;
退出&
E"
}
MenuItemhelpItem=newMenuItem(mainMenu,;
("
帮助&
H"
}
();
while(!
()){
etText("
超宽按钮1"
按钮2"
newButton(shell,.setText("
按钮3"
按钮4"
例充满式布局示例。
importclassSample4_11{
newButton(shell,.setText("
B1"
newButton(shell,.setText("
超宽按钮2"
按钮3"
B4"
按钮5"
while(!
()){
if(!
())();
}
}
}
当分别为1、2、3时,按钮依次按1列、2列和3列排列,运行结果如图~所示;
当makeColumnsEqualWidth=true时,虽然按钮宽度不同,但列宽相同,如图所示;
当horizontalSpacing=30时,列间距为30,如图所示。
图numColumns=1图numColumns=2图numColumns=3
图makeColumnsEqualWidth=true图horizontalSpacing=30
2.布局数据类(GridData类)
GridData是GridLayout专用的布局数据类,用GridData可以构建很多复杂的布局方式。
GridData的构造方法如下:
GridData();
创建一个属性值为默认值的对象。
GridData(inttype);
创建一个指定类型(type)的对象。
GridData常用类型如下:
通常与GridData类的对象属性horizontalAlignment和verticalAlignment配合使用,充满对象属性指定的空间。
GridData.FILL_HORIZONTAL水平充满,组件充满网格水平方向的空间。
GridData.FILL_VERTICAL垂直充满,组件充满网格垂直方向的空间。
GridData.FILL_BOTH双向充满,组件充满水平和垂直方向的空间。
水平对齐靠左,组件在网格中靠左放置。
水平对齐居中,组件在网格中居中放置。
水平对齐靠右,组件在网格中靠右放置。
GridData常用对象属性如下:
inthorizontalSpan设置组件占用的列数,默认值为1。
intverticalSpan设置组件占用的行数,默认值为1。
horizontalAlignment设置组件的对齐方式为水平方向。
verticalAlignment设置组件的对齐方式为垂直方向。
grabExcessHorizontalSpace抢占额外的水平空间。
grabExcessVerticalSpace抢占额外的垂直空间。
horizontalAlignment和verticalAlignment可以取以下值:
BEGINNING开始(水平对齐时居左;
垂直对齐时居上)
CENTER居中
END结束(水平对齐时居右;
垂直对齐时居下)
FILL充满
默认的horizontalAlignment值是BEGINNING。
默认的verticalAlignment值是CENTER。
例使用gridData布局。
importclassSample4_14{
Displaydisplay=newDisplay();
Shellshell=newShell(display);
("
GridData示例"
GridLayoutgridLayout=newGridLayout();
Buttonb4=newButton(shell,;
按钮6"
Textt1=newText(shell,;
文本框1"
gridData=newGridData();
=2;
按钮7"
按钮8"
运行结果如图所示。
虽然按钮b1和文本框t1都占两行两列,但由于t1水平方向和垂直方向的alignment属性都是FILL,因此文本框t1充满了两行和两列的空间,而按钮b1的horizontalalignment属性是CENTER,而verticalalignment属性是FILL,所以水平方向居中放置,而垂直方向充满了两行。
按钮b4和b5采用了不同的构造方法来创建gridData对象,但都充满了该列的水平空间。
当窗体变大时,由于设置了抢占水平方向和垂直方向额外的空间,即grabExcessVerticalSpace=true和grabExcessHorizontalSpace=true,所以文本框t1随窗体的拉伸而变大,反之,当窗体缩小时,t1也会缩小。
按钮b4和b5设置了水平方向充满属性,所以窗体拉伸时水平方向也会随之拉伸。
其余的组件大小不变。
如图所示。
这说明,如果组件所在的行变宽或列变高,所有具有填充(FILL)属性的组件也会变宽或变高;
而具有BEGINNING、CENTER、END属性的组件不会改变其大小。
图GridData示例图窗体拉伸时b4、b5和t1变化
表格式布局
表格式布局(FormLayout类)是一种非常灵活、精确的布局方式,这个布局是版新增的。
FormLayout也有专用的布局数据类FormData,此外,还增加了一个FormAttachment类。
FormAttachment定义了组件的四边与父容器(Shell、Composite等)的边距,为保证组件在父容器中的相对位置不变,FormAttachment类用不同的构造方法来实现组件的定位,用FormData和FormAttachment配合,可以创建复杂的界面,而且当主窗体大小改变时,组件的相对位置能保持相对不变。
FormLayout的构造方法:
FormLayout()。
1.FormLayout的属性
intmarginWidth:
设置组件与容器边缘的水平距离,默认值为0。
intmarginHeight:
设置组件与容器边缘的垂直距离,默认值为0。
例如,以下代码把父容器(shell)的四周边距都设置成10像素。
Displaydisplay=newDisplay();
Shellshell=newShell(display);
FormLayoutformlayout=newFormLayout();
=10;
(formlayout);
2.FormData类
FormData的构造方法
FormData()默认构造方法,组件的宽度和高度要用属性width和height设置。
FormData(intwidth,intheight)参数width和height设置组件的宽度和高度。
FormData的属性
width设置组件的宽度。
height设置组件的高度。
top和FormAttachment配合设置组件顶部和父容器顶部的边距。
bottom和FormAttachment配合设置组件底部和父容器底部的边距。
left和FormAttachment配合设置组件左边和父容器左边的边距。
right和FormAttachment配合设置组件右边和父容器右边的边距。
如果FormData中的width和height设置的宽度和高度与FormAttachment设置的约束发生冲突,则按照FormAttachment设置,width和height的设定值就不起作用了。
3.FormAttachment类
Attachment的含义是附着、粘贴。
FormAttachment类就是用来指定组件在父容器中的粘贴位置。
FormAttachment计算组件粘贴位置和组件大小的方法是依据下面的表达式:
y=ax+b
表达式中y是纵坐标,从上往下是正方向;
x是横坐标,从左至右是正方向;
a是斜率(a=m/n,n≠0),b是偏移量,沿x、y轴正方向的偏移量为正,反之为负。
.
FormAttachment的构造方法
FormAttachment()组件紧贴父容器的左边缘和上边缘,如果父容器设置了FormLayout属性marginWidth和marginHeight,则距父容器的上边缘和左边缘为marginHeight和marginWidth的设定值。
FormAttachment(Controlcontrol)以指定的组件control为参照物。
FormAttachment(Controlcontrol,intoffset)以指定的组件control为参照物,相对指定组件的偏移量为offset。
FormAttachment(Controlcontrol,intoffset,intalignment)以指定的组件control为参照物,相对指定组件的偏移量为offset,对齐方式为alignment。
alignment的取值如下:
、、、、
FormAttachment(intm,intn,intoffset)以组件相对于父容器宽度或高度的百分比(即斜率a)来给组件定位,m为a的分子,n为a的分母,offset是偏移量。
FormAttachment(intm,intoffset)以组件相对于父容器宽度或高度的百分比(即斜率a)来给组件定位,m为a的分子,a的分母为默认值100,offset是偏移量。
FormAttachment(intm)以组件相对于父容器宽度或高度的百分比(即斜率a)来给组件定位,m为a的分子,a的分母为默认值100,偏移量为默认值0。
例FormData与FormAttachment的配合使用。
importclassSample4_15{
Displaydisplay=newDisplay();
Shellshell=newShell(display);
("
FormLayout示例"
FormLayoutformLayout=newFormLayout();
述创建一个典型的SWT应用程序常用的步骤。
2.简述包的用途。
3.简述GridLayout的常用属性。
4.简述FormAttachment类的作用,它有几个构造方法。
构造方法中的参数表示什么含义
5.完成图所示图形界面的制作。
要求“查询结果”用group组件。
图数据查询界面
6.完成图所示学籍管理主界面的设计与制作。
图学籍管理系统主界面
7.在图所示界面中,在“用户登录”菜单中添加组件选择事件,当选中“用户登录”时,打开图所示用户登录界面。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 swt 教程