1按钮组件(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);
多选、深陷、左对齐
(2)Button组件的常用方法
setText(Stringstring),设置组件的标签文字
setBounds(intx,inty,intwidth,intheight);//设置组件的坐标位置和大小
setEnabled(Booleanenabled);设置组件是否可用,默认为true
setFont(Fontfont);设置文字的字体
setForeground(Colorcolor);设置前景色
setBackground(Colorcolor);设置背景色
setImage(Imageimage);设置显示用的图片
setSelection(Booleanselected);设置是否选中,默认为false
setToolTipText(Stringstring);设置鼠标停留在组件上是显示的提示信息
2标签组件(Label)
(1)Label常见式样
SWT.CENTER居中
SWT.RIGHT右对齐
SWT.LEFT左对齐
SWT.NONE默认样式
SWT.WRAP自动换行
SWT.BORDER深陷型
SWT.SEPARATOR分栏符,默认为竖线分栏符
HORIZONTAL横线分栏符
3文本框组件(Text)
(1)Text常见式样
SWT.NONE默认式样
SWT.CENTER
SWT.RIGHT
SWT.LEFT
SWT.MULTI可以输入多行,需回车换行
SWT.WRAP可以输入多行,自动换行
SWT.PASSWORD密码型,输入字符显示成“*”
SWT.BORDER深陷型
SWT.V_SCROLL垂直滚动条
SWT.H_SCROLL水平滚动条
4下拉框组件(Combo)
(1)Combo常见样式
SWT.NONE默认
SWT.READ_ONLY只读
SWT.SIMPLE无需单击下拉框,列表会一直显示
(2)Combo下拉框常用方法
add(Stringstring)在Combo上添加一项
add(Stringstring,intindex)在Combo的第index(从0开始)项后插入一项
deselectAll()使Combo组件中的当前选项为空
removeAll()将Combo中的所有选项清空
setItems(String[]items)将数组中的各项依次加入到Combo中
select(intindex)将Combo的第index+1项设置为当前选择项
5列表框组件(List)
(1)List常见样式
SWT.NONE默认样式
SWT.V_SCROLL带垂直滚动条
SWT.MULTI允许复选
SWT.SINGLE允许单选
(2)常用方法
List和Combo组件的方法是一样的,但由于List可选择多项,而Combo只能选择一项
,所以List没有getText()方法,List的取值使用getSelection(),返回一个String
数组。
6菜单(Menu,MenuItem)
菜单(Menu、MenuItem)是常用的SWT组件,Menu是一个菜单栏,同时也是一个容器
,可以容纳菜单项(MenuItem)
(1)Menu样式
SWT.BAR菜单栏,用于主菜单
SWT.DROP_DOWN下拉菜单,用于子菜单
SWT.POP_UP鼠标右键弹出菜单
(2)MenuItem式样
SWT.CASCADE有子菜单的菜单项
SWT.CHECK选中后前面显示一个小勾
SWT.PUSH普通型菜单
SWT.RADIO选中后前面显示一个圆点
SWT.SEPARATOR分隔符
(3)建立菜单一般步骤
①首先建立一个菜单栏,需要用到SWT.BAR属性
MenumainMunu=newMenu(shell,SWT.BAR);
②在窗体中指定需要显示的菜单栏
shell.setMenuBar(mainMenu);
③创建顶级菜单项,需要使用SWT.CASCADE属性
MenuItemfileItem=newMenuItem(mainMenu,SWT.CASCADE);
fileItem.setText("file&F");
④创建与顶级菜单项相关的下拉式菜单
MenufileMenu=newMenu(shell,SWT.DROP_DOWN);
⑤将顶级菜单项与下拉菜单关联
fileItem.setMenu(fileMenu);
二级菜单的建立只需要重复③~⑤即可
容器类
1面板(Composite)
(1)Composite常用方法
getLayout()获得布局管理器
getLayoutData()得到布局数据
getParent()得到容纳该容器的父容器
getShell()得到容纳该容器的Shell
layout()将容器上的组件重新布局,相当于刷新
2分组框(Group)
Group是Composite的子类,所以两者用法基本相同。主要区别是Group显示有一个方框,且方
框线上还可以显示说明文字
3选项卡(TabFolder、TabItem)
选项卡包括一个选项卡(TabFolder类)和一个选项页(TabItem类),TabFolder是容器,可
以容纳其它容器和组件,但TabItem不是容器,可以把它看成是一个选项标签,TabFolder通过
TabItem来对其中的组件进行控制。每一个TabItem用setControl()来控制一个界面组件。
布局管理器
1充满式布局(FillLayout)
FillLayout是最简单的布局管理器,它把组件按一行或一列充满整个容器,并强制组件的大小一致。
一般组件高度和最高组件相同,宽度与最宽组件相同。FillLayout不能折行,不能设置边界距离和间距。
如果容器中只有一个组件,则该组件会充满整个容器。
(1)构造方法
FillLayout()创建按一行充满容器的对象。
FillLayout(inttype)创建按指定类型充满容器的对象,type有:SWT.HORIZONTAL(行)
SWT.VERTICAL(列)
(2)常用属性
inttype指定组件充满容器的类型
FillLayout.type=SWT.VERTICAL或SWT.HORIZONTAL;
2行式布局(RowLayout)
RowLayout可以是组件折行显示,可以设置边界距离和间距。另外,还可以对每个组件通过setLayoutData()
方法设置RowData对象。RowData用来设置组件大小。
(1)构造方法
RowLayout()创建按行放置组件的对象
RowLayout(inttype)创建按指定类型放置组件的对象。type:SWT.HORIZONTALSWT.VERTICAL
(2)常用属性
intmarginWidth组件距容器边缘的宽度(像素),默认为0
intmarginHeight组件距容器边缘的高度(像素),默认为0
intmarginTop组件距容器上边缘的距离(像素),默认为3
intmarginBottom组件距容器下边缘的距离(像素),默认为3
intspacing组件之间的距离,默认值为3
booleanjustify如果该属性为true,则组件间的距离随容器的拉伸而变大,默认值为false
booleanwrap如果该属性为true,当空间不足时会自动折行,默认为true
booleanpack如果该属性为true,组件大小为设定值;如果为false,则强制组件大小相同
默认为true
inttyepSWT.HORIZONTAL(行)SWT.VERTICAL(列)
(2)RowData类
RowData称为RowLayout的布局数据类,可用于改变容器中组件外观形状,其构造方法为
RowData(intwidth,intheight)
3网格式布局(GridLayout)
GridLayout是实用而且功能强大的标准布局,也是较为复杂的一种布局。这种布局把容器分成网格
,把组件放置在网格中。GridLayout有很多可配置属性,和RowLayout一样,也有专用的布局数据类
GridData.GridLayout的构造方法无参数,但可以通过GridData和设置GridLayout属性来设置组建的排列、
形状、和位置。
(1)GridLayout属性
intnumColumn设置容器的列数,组件从左到右按列放置,当组件数大于列数时,下一个组件
将自动添加到新的一行
booleanmakeColumnsEqualWidth强制使列都具有相同的宽度,默认为false
intmarginWidth设置组件与容器边缘的水平距离,默认值为5
intmarginHeight设置组件与容器边缘的垂直高度,默认值为5
inthorizontalSpacing设置列与列之间的间距,默认为5
intverticalSpacing设置行与行之间的间隔,默认为5
(2)布局数据类(GridData类)
GridData是GridLayout专用的布局数据类,用GridData可以构建很多复杂的布局方式。
①构造方法
GridData()创建一个属性值为默认值的对象
GridData(inttype)
②GridData常用类型
GridData.FILL通常与对象属性horizontalAlignment和verticalAlignment配合使用,充满对象
属性指定空间。
GridData.FILL_HORIZONTAL水平充满,
GridData.FILL_VERTICAL垂直充满
GridData.FILL_BOTH双向充满
GridData.HORIZONTAL_ALIGN_BEGINNING水平靠在对齐
GridData.HORIZONTAL_ALIGN_END水平靠右对齐
GridData.HORIZONTAL_ALIGN_CENTER水平居中对齐
③GridData常有对象属性如下:
inthorizontalSpan设置组件占用的列数,默认为1
intverticalSpan设置组件占用的行数,默认为1
horizontalAlignment设置组件对齐方式为水平方向
verticalAlignment设置组件对齐方式为垂直方向
grabExcessHorizontalSpace抢占额外水平空间
grabExcessVerticalSpace抢占额外垂直空间
horizontalAlignment和verticalAlignment可以取以下值:
GEGINNING开始(水平对齐时居左,垂直对齐时居上)
CENTER居中,默认
END结束(水平对齐时居右,垂直对齐时居下)
FILL充满
4表格式布局(FormLayout)
FormLayout是一种非常灵活、精确的布局方式,FormData使其专用的布局数据类。
此外,还增加了一个FormAttachment类。FormAttachment定义了组件的四边与父容器
(Shell、Composite)的边距,为保证组件在父容器中的相对位置不变,FormAttachment
类用不同的构造方法来实现组件的定位,用FormData和FormAttachment配合,可以创建复杂
的界面,而且当主窗体大小改变时,组件的相对位置能保持相对不变。
(1)FormLayout构造函数
FormLayout();
(2)FormLayout的属性
intmarginWidth//设置组件与容器边缘的水平距离,默认值为0
intmarginHeihgt//设置组件与容器边缘的垂直距离,默认为0
(3)FormData类
①FormData的构造方法
FormData()
FormData(intwidth,intheight)设置组件的宽度和高度
②FormData的属性
width设置组件的宽度
height设置组件的高度
top和FormAttachment配合设置组件底部和父容器底部的边距
left和FormAttachment配合设置组件右边和父容器右边的边框
如果FormData中的width和height设置的宽度和高度与FormAttachment设置的约束
发生冲突,则按照FormAttachment设置,width和height的设定值就不起作用了。
(3)FormAttachment类
Attachment的含义是附着、粘贴。FormAttachment类就是用来指定组件在父容器中粘贴的
位置。FormAttachment计算组件粘贴位置和组件大小的方法是依据下面的表达式:
y=ax+b
①FormatAttachment构造方法
FormatAttachment()组件紧贴父容器的左边缘和上边缘,如果父容器设置了FormLayout属
性marginWidth、marginHeight,则距父容器的上边缘和左边缘为其值。
FormatAttachment(Controlcontrol)以指定组件control为参照物
FormatAttachment(Controlcontrol,intoffset)以指定组件control为参照物,相对指定
组件偏移量为offset
FormatAttachment(Controlcontrol,intoffset,intalignment)对齐方式为alignment
SWT.TOPSWT.BOTTOMSWT.LEFTSWT.RIGHTSWT.CENTER
FormAttachment(intm,intn,intoffset)以组件相对与父容器宽度或高度的百分比(即斜率a)来给
组件定位,m为a的分子,n为分母,offset为偏移量
FormAttachment(intm,intoffer)n默认为100
FormAttachment(intm)n默认为100,offset默认为0
SWT的常用事件
所有事件、监听器和适配器都放在包org.eclipse.swt.events中。
(1)SWT中常用事件如下:
①addMouseListener鼠标监听器
mouseDown()
mouseUP()
mouseDoubleClick()
②addKeyListener按键监听器
keyPressed()
keyReleased()
③addSelectionListener组件选择监听器
widgetSelected()
④addFocusListener焦点监听器
focusGained()得到焦点
focusLost()失去焦点
相关推荐
它们支持所有主流的操作系统,包括Windows、macOS和各种版本的Linux。 #### 1.2 SWT/JFace的技术背景 - **SWT简介**:SWT是一种轻量级的图形库,它通过直接调用本地操作系统的图形API来渲染用户界面组件,从而确保...
- **指定VM Arguments**:在配置对话框的`Arguments`选项卡下,于`VM arguments`字段中添加`-Djava.library.path=pathtolibrary`参数,其中`pathtolibrary`应替换为实际的原生库文件路径。 - **保存配置**:保存运行...
在SWT中,你可以创建各种控件,如文本框、按钮、表格等。例如,用户输入数据的文本框,执行操作的按钮。当用户点击按钮时,会触发一个事件,这个事件会被一个事件监听器捕获,然后执行对应的业务逻辑。在SWT中,事件...
**SWT教程——Java开发中的图形用户界面设计** SWT(Standard Widget Toolkit)是Java编程环境中用于构建桌面应用程序的一种GUI库。它由Eclipse基金会维护,是Eclipse IDE的基础组件之一,提供了丰富的用户界面控件...
### SWT布局管理器在Java中的应用详解 在Java的图形用户界面(GUI)开发领域,Swing和SWT是两个广泛使用的框架。Swing是Java的一部分,而SWT(Standard Widget Toolkit)则是Eclipse项目的一部分,专门针对原生操作...
2. **创建Shell**:`Shell`是SWT中的窗口对象,相当于其他GUI库中的Frame或Window。`new Shell(display)`创建了一个新的Shell,它需要Display对象作为参数。 3. **设置Shell的布局**:布局管理器决定了窗口内组件的...
在SWT中,Table控件相当于其他GUI库中的数据表格,可以用来展示多行多列的数据。在处理大量数据时,为了提高性能和用户体验,通常会采用分页的方式来显示数据。本文将深入探讨如何使用SWT Table实现分页功能,并基于...
标题中的"org.eclipse.swt-3.1_SWT_doc_"表明这是一个关于Eclipse SWT(Standard Widget Toolkit)库的文档版本3.1。Eclipse SWT是Java应用程序开发的一个关键组件,它提供了一个与操作系统直接交互的GUI(图形用户...
例如,在代码片段中,`new Button(shell, SWT.PUSH)`这行代码就在`shell`组件中添加了一个标准的推按钮。 此外,还可以通过`setBounds`方法来定位按钮,以及使用`setText`方法设置按钮上显示的文本。下面是一个简化...
在SWT中,你可以创建各种用户界面元素,包括用于数据展示的表格控件。SQLServer是Microsoft开发的关系型数据库管理系统,广泛应用于企业级数据存储和管理。当SWT与SQLServer结合时,我们可以构建具有数据库查询功能...
Java SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一种库,它是Eclipse基金会的一部分。SWT提供了与操作系统原生界面元素直接交互的能力,使得Java应用能够拥有更接近本地应用的外观和...
在Eclipse中,这通常涉及将swt.jar添加到项目构建路径中,通过Project->Properties->Java Build Path->Libraries->Add Variable->Eclipse Home,然后选择正确的swt.jar路径。此外,还需要确保系统路径包含SWT所需的...
SWT 组件通常通过构造方法中的样式参数来声明组件的外观形状和文字样式。 ##### 2.2 Button 组件常用样式 SWT 定义了多种样式,用于控制 `Button` 的显示效果: - **`SWT.PUSH`**:普通按钮。 - **`SWT.CHECK`**...
- 重写SWT控件在普通的Java程序中是可以实现的,但在RCP环境中可能会遇到字节码验证错误。 #### 八、SWT的Dialog 1. **Dialog的设计** - SWT的Dialog不支持可视化开发,但可以在Dialog内部放置一个Composite控件...
对于非Eclipse环境,可以通过修改classpath配置文件或在命令行中指定 `-cp` 参数来添加。 SWT提供了丰富的组件,如按钮、文本框、列表、树视图、表格等,以及对话框和拖放功能。开发者可以利用这些组件构建复杂的...
SWT的组件包括Button、Text、Table、Composite等,它们可以被组合起来构建出各种复杂的界面布局。 接下来,"web servers"在这里指的是用于获取和处理天气数据的服务器。项目可能利用了RESTful API,如...
SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的基础。SWT的设计目标是提供一个高效、本地化的GUI工具包,能够充分利用操作系统提供的功能,同时保持与...
3. **创建Browser实例**:在Shell中,使用`new Browser(parent, style)`创建一个Browser对象,其中`parent`参数为Shell,`style`可以是各种风格选项,如`SWT.NONE`或`SWT.RESIZE`等。 4. **加载网页**:使用`...
在SWT中,Tree组件用于展示层次结构的数据,类似于Windows资源管理器中的文件系统视图。本教程将通过一个完整的SWT Tree实例,帮助新手理解如何创建、操作和自定义SWT Tree。 首先,我们来分析给定的文件列表: 1....
- 在Eclipse运行参数中指定dll文件路径。 #### 四、SWT/JFace程序示例——Hello World - **创建HelloSwt类** 在项目中新建一个名为`HelloSwt`的类,并将其置于`swtjfacesample`包中。 - **代码实现** ```java ...