SWT常用组件
SWT类所代表的事件常量:
事件类型常量 |
说明 |
SWT.Activate |
当激活窗口时 |
SWT.Arm |
菜单项被选中之前 |
SWT.Close |
关闭窗口时 |
SWT.Collapse |
折叠树的节点时 |
SWT.Deactivate |
窗口处于非激活状态时 |
SWT.DefaultSelection |
默认选中时 |
SWT.Deiconify |
窗口不是最小化时 |
SWT.Dispose |
释放资源时 |
SWT.DragDetect |
拖动控件时 |
SWT.Expand |
展开树节点时 |
SWT.FocusIn |
控件获得焦点时 |
SWT.FocusOut |
控件失去焦点时 |
SWT.HardKeyDown |
硬件按键按下时,例如Pocket PC |
SWT.HardKeyUp |
硬件按键抬起时,例如Pocket PC |
SWT.Help |
按下帮助键时 |
SWT.Hide |
隐藏控件时 |
SWT.Iconify |
窗口最小化时 |
SWT.KeyDown |
按下按键时 |
SWT.KeyUp |
抬起按钮时 |
SWT.MenuDetect |
选中菜单时 |
SWT.Modify |
文本修改时 |
SWT.MouseDoubleClick |
双击鼠标时 |
SWT.MouseDown |
鼠标按下时 |
SWT.MouseEnter |
鼠标进入时 |
SWT.MouseExit |
鼠标离开时 |
SWT.MouseHover |
鼠标在控件区域上时 |
SWT.MouseMove |
鼠标移动时 |
SWT.MouseUp |
鼠标抬起时 |
SWT.Move |
移动控件时 |
SWT.None |
无类型事件 |
SWT.Paint |
绘制控件时 |
SWT.Resize |
重新设置控件大小时 |
SWT.Selection |
选中控件时 |
SWT.Show |
显示控件时 |
SWT.Traverse |
使用Tab键切换时 |
SWT.Verify |
文本进行修改时 |
JAVA.SWT/JFace:
按键与其对应的常量表、KeyEvent事件比较、VerifyEvent事件比较
按键与其对应的常量表:
按键 |
keyCode常量 |
方向键下 |
SWT.ARROW_DOWN |
方向键上 |
SWT.ARROW_UP |
方向键左 |
SWT.ARROW_LEFT |
方向键右 |
SWT.ARROW_RIGHT |
Alt键 |
SWT.ALT |
空格键 |
SWT.BS |
Enter键 |
SWT.CR |
Ctrl键 |
SWT.CTRL |
End键 |
SWT.END |
Esc键 |
SWT.ESC |
F1~F12键 |
SWT.F1~SWT.F12 |
Home键 |
SWT.HOME |
Insert键 |
SWT.INSERT |
Page Down下翻页键 |
SWT.PAGE_DOWN |
Page Up上翻页键 |
SWT.PAGE_UP |
Shift键 |
SWT.SHIFT |
Tab键 |
SWT.TAB |
换行键 |
SWT.LF |
KeyEvent事件比较:
示例描述 |
各属性的值 |
说明 |
按下A键 |
character='a' |
97表示键盘上的a键。当要输入大写字母A时,需要使用Shift键,所以这时stateMask的值为SWT.SHIFT |
按下A键同时按下Shift键 |
character='A' |
|
按下F1键 |
character='\0' |
F1键不表示任何字符,所以character为\0 |
按下F1键同时按下Ctrl键 |
character='\0' |
同时按下了辅助键,所以stateMask值为SWT.CTRL |
VerifyEvent事件比较:
文本框的初始值 |
示例描述 |
改变字符后文本框的值 |
各属性的值 |
说明 |
|
"abcd" |
字符后输入字符e |
"abcde" |
character='e' |
插入字符时start 和 |
|
"abcd" |
从剪贴板中粘贴"abcd" |
"abcdabcd" |
character='\0' |
||
"abcd" |
删除字符c |
"abd" |
character=' |
删除字符时,text的值为空,start记录了删除字符的起始位置,end记录了删除字符的结束位置 |
|
"abcd" |
选择cd字符后按Delete键 |
"ab" |
character=' |
SWT类所代表的事件常量:
事件类型常量 |
说明 |
SWT.Activate |
当激活窗口时 |
SWT.Arm |
菜单项被选中之前 |
SWT.Close |
关闭窗口时 |
SWT.Collapse |
折叠树的节点时 |
SWT.Deactivate |
窗口处于非激活状态时 |
SWT.DefaultSelection |
默认选中时 |
SWT.Deiconify |
窗口不是最小化时 |
SWT.Dispose |
释放资源时 |
SWT.DragDetect |
拖动控件时 |
SWT.Expand |
展开树节点时 |
SWT.FocusIn |
控件获得焦点时 |
SWT.FocusOut |
控件失去焦点时 |
SWT.HardKeyDown |
硬件按键按下时,例如Pocket PC |
SWT.HardKeyUp |
硬件按键抬起时,例如Pocket PC |
SWT.Help |
按下帮助键时 |
SWT.Hide |
隐藏控件时 |
SWT.Iconify |
窗口最小化时 |
SWT.KeyDown |
按下按键时 |
SWT.KeyUp |
抬起按钮时 |
SWT.MenuDetect |
选中菜单时 |
SWT.Modify |
文本修改时 |
SWT.MouseDoubleClick |
双击鼠标时 |
SWT.MouseDown |
鼠标按下时 |
SWT.MouseEnter |
鼠标进入时 |
SWT.MouseExit |
鼠标离开时 |
SWT.MouseHover |
鼠标在控件区域上时 |
SWT.MouseMove |
鼠标移动时 |
SWT.MouseUp |
鼠标抬起时 |
SWT.Move |
移动控件时 |
SWT.None |
无类型事件 |
SWT.Paint |
绘制控件时 |
SWT.Resize |
重新设置控件大小时 |
SWT.Selection |
选中控件时 |
SWT.Show |
显示控件时 |
SWT.Traverse |
使用Tab键切换时 |
SWT.Verify |
文本进行修改时 |
SWT常见的事件
事件类型 |
监听器和适配器 |
监听器中的方法 |
说明 |
可注册的GUI控件 |
ArmEvent |
ArmListener |
widgetArmed() |
菜单项被选中之前触发此事件 |
MenuItem |
ControlEvent |
ControlListener |
controlMoved() |
控件的位置改变时 |
Control,TableColumn, Tracker |
controlResized() |
控件的大小改变时 |
|||
DisposeEvent |
DisposeListener |
widgetDisposed() |
控件释放时 |
Widget |
FocusEvent |
FocusListener |
focusGained() |
控件获得焦点时 |
Control |
focusLost() |
控件失去焦点时 |
|||
HelpEvent |
HelpListener |
helpRequested() |
按F1键获得帮助时触发该事件 |
Control, |
KeyEvent |
KeyListener |
keyPressed() |
按键按下时 |
Control |
keyReleased() |
按键释放时 |
|||
MenuEvent |
MenuListener |
menuHidder() |
显示菜单时 |
Menu |
menuShown() |
隐藏菜单时 |
|||
ModifyEvent |
ModifyListener |
modifyText() |
文本被修改时 |
Ccombo, |
MouseEvent |
MouseListener |
mouseDoubleClick() |
鼠标双击时 |
Control |
mouseDown() |
鼠标按下时 |
|||
mouseUp() |
鼠标抬起时 |
|||
MouseMoveEvent |
MouseMoveListener |
mouseMove() |
鼠标移动时 |
Control |
MouseTrackEvent |
MouseTrackListener |
mouseEnter() |
鼠标进入控件区域时 |
Control |
mouseExit() |
鼠标离开控件区域时 |
|||
mouseHover() |
鼠标在该控件区域时 |
|||
PaintEvent |
PaintListener |
paintControl() |
绘制控件时 |
Control |
SelectionEvent |
SelectionListener |
widgetSelected() |
选中控件时,事件的发生根据不同的系统而异 |
Button, |
widgetDefaultSelected() |
默认选中控件时,事件的发生根据不同的系统而异 |
|||
ShellEvent |
ShellListener |
shellActivated() |
窗口被激活时 |
Shell |
shellClosed() |
窗口关闭时 |
|||
shellDeactivated() |
窗口变为非激活状态时 |
|||
shellDeiconified() |
当窗口不是最小化时 |
|||
shellIconified() |
当窗口最小化时 |
|||
TraverseEvent |
TraverseListener |
keyTraversed() |
按下Tab键切换时 |
Control |
TreeEvent |
TreeListener |
treeCollapsed() |
折叠树节点时 |
Tree, |
treeExpanded() |
展开树节点时 |
|||
VerifyEvent |
VerifyListener |
verifyText() |
改变文本时触发该事件 |
Text, |
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可以指定多个样式,只要将指定的各个样式用符号“|”连接起来即可
Button bt=new Button(shell,SWT.CHECK|SWT.BORDER|SWT.LEFT);
多选、深陷、左对齐
(2)Button组件的常用方法
setText(String string),设置组件的标签文字
setBounds(int x,int y,int width,int height);//设置组件的坐标位置和大小
setEnabled(Boolean enabled);设置组件是否可用,默认为true
setFont(Font font);设置文字的字体
setForeground(Color color);设置前景色
setBackground(Color color);设置背景色
setImage(Image image);设置显示用的图片
setSelection(Boolean selected);设置是否选中,默认为false
setToolTipText(String string);设置鼠标停留在组件上是显示的提示信息
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(String string) 在Combo上添加一项
add(String string,int index) 在Combo的第index(从0开始)项后插入一项
deselectAll() 使Combo组件中的当前选项为空
removeAll() 将Combo中的所有选项清空
setItems(String[] items) 将数组中的各项依次加入到Combo中
select(int index) 将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属性
Menu mainMunu=new Menu(shell,SWT.BAR);
②在窗体中指定需要显示的菜单栏
shell.setMenuBar(mainMenu);
③创建顶级菜单项,需要使用SWT.CASCADE属性
MenuItem fileItem=new MenuItem(mainMenu,SWT.CASCADE);
fileItem.setText("file&F");
④创建与顶级菜单项相关的下拉式菜单
Menu fileMenu=new Menu(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(int type) 创建按指定类型充满容器的对象,type有:SWT.HORIZONTAL(行)
SWT.VERTICAL(列)
(2)常用属性
int type 指定组件充满容器的类型
FillLayout.type=SWT.VERTICAL 或 SWT.HORIZONTAL;
2行式布局(RowLayout)
RowLayout可以是组件折行显示,可以设置边界距离和间距。另外,还可以对每个组件通过setLayoutData()
方法设置RowData对象。RowData用来设置组件大小。
(1)构造方法
RowLayout() 创建按行放置组件的对象
RowLayout(int type) 创建按指定类型放置组件的对象。type:SWT.HORIZONTAL SWT.VERTICAL
(2)常用属性
int marginWidth 组件距容器边缘的宽度(像素),默认为0
int marginHeight 组件距容器边缘的高度(像素),默认为0
int marginTop 组件距容器上边缘的距离(像素),默认为3
int marginBottom 组件距容器下边缘的距离(像素),默认为3
int spacing 组件之间的距离,默认值为3
boolean justify 如果该属性为true,则组件间的距离随容器的拉伸而变大,默认值为false
boolean wrap 如果该属性为true,当空间不足时会自动折行,默认为true
boolean pack 如果该属性为true,组件大小为设定值;如果为false,则强制组件大小相同
默认为true
int tyep SWT.HORIZONTAL(行) SWT.VERTICAL(列)
(2)RowData类
RowData称为RowLayout的布局数据类,可用于改变容器中组件外观形状,其构造方法为
RowData(int width,int height)
3网格式布局(GridLayout)
GridLayout是实用而且功能强大的标准布局,也是较为复杂的一种布局。这种布局把容器分成网格
,把组件放置在网格中。GridLayout有很多可配置属性,和RowLayout一样,也有专用的布局数据类
GridData.GridLayout的构造方法无参数,但可以通过GridData和设置GridLayout属性来设置组建的排列、
形状、和位置。
(1)GridLayout属性
int numColumn 设置容器的列数,组件从左到右按列放置,当组件数大于列数时,下一个组件
将自动添加到新的一行
boolean makeColumnsEqualWidth 强制使列都具有相同的宽度,默认为false
int marginWidth 设置组件与容器边缘的水平距离,默认值为5
int marginHeight 设置组件与容器边缘的垂直高度,默认值为5
int horizontalSpacing 设置列与列之间的间距,默认为5
int verticalSpacing 设置行与行之间的间隔,默认为5
(2)布局数据类(GridData类)
GridData是GridLayout专用的布局数据类,用GridData可以构建很多复杂的布局方式。
①构造方法
GridData() 创建一个属性值为默认值的对象
GridData(int type)
②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常有对象属性如下:
int horizontalSpan 设置组件占用的列数,默认为1
int verticalSpan 设置组件占用的行数,默认为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的属性
int marginWidth //设置组件与容器边缘的水平距离,默认值为0
int marginHeihgt //设置组件与容器边缘的垂直距离,默认为0
(3)FormData类
①FormData的构造方法
FormData()
FormData(int width,int height)设置组件的宽度和高度
②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(Control control)以指定组件control为参照物
FormatAttachment(Control control,int offset)以指定组件control为参照物,相对指定
组件偏移量为offset
FormatAttachment(Control control,int offset,int alignment)对齐方式为alignment
SWT.TOP SWT.BOTTOM SWT.LEFT SWT.RIGHT SWT.CENTER
FormAttachment(int m,int n,int offset)以组件相对与父容器宽度或高度的百分比(即斜率a)来给
组件定位,m为a的分子,n为分母,offset为偏移量
FormAttachment(int m,int offer) n默认为100
FormAttachment(int m) n默认为100,offset默认为0
SWT的常用事件
所有事件、监听器和适配器都放在包org.eclipse.swt.events中。
(1)SWT中常用事件如下:
①addMouseListener鼠标监听器
mouseDown()
mouseUP()
mouseDoubleClick()
②addKeyListener按键监听器
keyPressed()
keyReleased()
③addSelectionListener组件选择监听器
widgetSelected()
④addFocusListener焦点监听器
focusGained() 得到焦点
focusLost() 失去焦点
SWT常用组件的更多相关文章
- 关于SWT常用组件(按钮,复选框,单选框(Button类))
Button是SWT中最常用的组件.Button类的继承关系图: Button类的构造方法是newe Button(Composite parent,int style)它有两个参数: 第一个参数:是 ...
- SWT常用组件(转)
转载自:http://www.cnblogs.com/happyPawpaw/archive/2012/10/19/2730478.html 1按钮组件(Button) (1)Button组件常用样式 ...
- SWT入门-常用组件的使用(转)
转自:http://www.cnblogs.com/kentyshang/archive/2007/08/16/858367.html swt的常用组件button ,text ,combo,list ...
- java基础 常用组件
几个常用组件: 在图形用户界面编程中,我们常常会提供用户登陆界面,比如登陆到会员管理系统,登陆到工资管理系统,仓库管理系统等,如下图我们就会用到: 1. 文本框(JTextField) 2. 密码框( ...
- Android常用组件
UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...
- Android常用组件【转】
UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...
- swing菜单,常用组件,常用容器
1菜单 import javax.swing.*; import java.awt.*; import java.awt.event.InputEvent; import java.awt.event ...
- 第18讲- UI常用组件之EditText
第18讲UI常用组件之EditText 三.文本输入框EditText EditTex类继承自TextView.EditText是接受用户输入信息的最重要控件.在html当中,相当于<input ...
- 第17讲- UI常用组件之ImageView图片浏览
第17讲 UI常用组件之ImageView图片浏览 二.图片浏览ImageView ImageView就是一个用来显示图片的视图: ImageView常见属性 常见属性 对应方法 说明 android ...
随机推荐
- PHP 分割字串 Function 的速度比較(substr/sscanf/preg_match)---substr最快!
固定長度的字串(假設是 06481a63041b578d702f159f520847f8), 要照固定格式做切割, 使用 PHP 要怎麼切會比較快? 註: 要將此字串切成 => 06 / 48 ...
- linux用户帐号管理/etcpasswd 和/etc/shadow文件
#学习鸟哥的linux私房菜 /etc/passwd的文件构造: dahu@dahu-OptiPlex-:~/myfile/VideoFile$ head /etc/passwd root:x:::r ...
- ElasticSearch部署文档(Ubuntu 14.04)
ElasticSearch部署文档(Ubuntu 14.04) 参考链接 https://www.elastic.co/guide/en/elasticsearch/guide/current/hea ...
- Jenkins hello world
1. 点击[新建项目],选择如下: (2)点击[流水线],并键入以下图示代码. (3) 点击保存,并[立即构建].
- eclipse重的自动提示与行号和快捷图标的显示
显示行号:Window->Preferences->Gerenal->Editors->Text Editors然后在show line number上打对勾自动提示:Wind ...
- ubuntu怎么连接centos远程桌面
1.系统软件设置CentOS端:查看是否安装了vnc软件# rpm -q vnc vnc-serverpackage vnc is not installedvnc-server-4.1.2-14.e ...
- C和指针之学习笔记(5)
第10章 使用结构和指针 单链表 typedef struct NODE { struct NODE *link; int value; } Node; 插入到一个有序单链表: #include< ...
- Hibernate 悲观锁(Pessimistic Locking)
在日常开发中并发应该是比较常遇到的业务场景,Hibernate给我们提供了并发操作,接下来简单介绍一下Hibernate悲观控制. 悲观锁:用户其实并不需要花很多精力去担心锁定策略的问题,通常情况下, ...
- 【BZOJ 4361】 4361: isn (DP+树状数组+容斥)
4361: isn Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 218 Solved: 126 Description 给出一个长度为n的序列A( ...
- BZOJ2938 POI2000病毒
我们不能让重复过的字串出现在无限串上(就叫这个了...) 也就是要自动机一直能匹配但就是匹配不到,那么就是在自动机上找一个环. dfs判环即可.注意是个有向图. #include<bits/st ...