Eclipse SWT框架API接口说明
Display创建
创建Display对象的线程称为UI线程。Display类提供了getDefault()方法。
Shell创建
一个Shell实例代表一个窗口。Shell.setSize设置窗口的尺寸;Shell.open()将窗口显示在屏幕上;
Display销毁
程序不再使用Display实例后,调用Display的dispose方法销毁
SWT多线程
SWT采用单线程模型管理绘图操作,只有UI线程才能进行控件重绘和处理事件循环等直接访问Display的操作,非UI线程无法操作Display。
Widget 类
Widget类SWT中所有和窗口相关部件的父类,继承自Object,为所有窗口组件提供创建对象、释放资源和事件监听的功能。有两个重要的子类:Control类是所有控件的父类,Item类是控件的辅助部分,代表复杂控件中的某一“项”,如表格控件中的一行就是由TableItem表示的。
控件的构造和样式
使用Control(Control parent, int style)来构造一个控件实例,第一个参数表示控件的父资源,第二个参数表示控件使用的样式,多个样式使用**|**隔开
控件的用户数据
开发者自定义的存储在控件中的数据。
使用Image
使用Image的构造函数:
Image image = new Image(Display.getDefault(), "C:\\111.jpg");
使用ImageData类,ImageData包含图像的尺寸、颜色、透明度等内容。
ImageData imageData = new ImageData("D:\\111.jpg");
使用Display内置Image对象
Image image = display.getSystemImage(SWT.ICON_ERROR);
使用Font
使用Font构造函数创建一个字体对象:
Font createFont = new Font(display, "Tahoma", 10, SWT.BOLD);
使用Display.getSystemFont获取系统内置的字体
使用控件的setFont设置字体
系统托盘
系统托盘资源由Tray类型管理,调用Display.getSystemTray获取。
获取Tray实例后,通过创建TrayItem 设置托盘的图标和提示信息。
Tray systemTray = display.getSystemTray();
TrayItem newItem = new TrayItem(systemTray, SWT.NONE);
newItem.setImage(display.getSystemImage(SWT.ICON_ERROR));
newItem.setToolTipText("Test Tray");
在SWT中使用Swing
使用SWT_AWT桥,从Composite对象中获取Swing的Frame实例。
SWT 中的基本控件
Button、Label、Text、List、Combo、ToolBar和ToolItem、Menu和MenuItem等
List控件:
Combo控件
ToolBar和ToolItem控件
Menu和MenuItem
CoolBar 和 CoolItem
CoolBar 中的按钮可以拖动,CoolItem 作为一个容器,可以加入Button、Text、Combo控件等。
TabFolder 和 TabItem
消息框
文件与目录对话框
颜色对话框
字体对话框
布局
AbsoluteLayout布局: 没有为容器指定布局管理器,容器就使用默认的AbsoluteLayout
FillLayout布局: 最简单的Layout布局,按照创建的顺序从左到右横向排布或从上到下纵向排布,并平均分配父容器的可视区域。
RowLayout布局: 将子控件自动排列在一行或一列,允许开发者给控件指定宽度和高度,没有指定使用默认尺寸,当超出容器宽度或高度后,会换行,不保证控件能完整显示。
GridLayout布局: 将容器空间划分为网格,根据网格安排子控件的位置,列数由属性numColumns指定,行数由numColumns和子控件个数共同决定。
FormLayout布局: 某个控件的位置由它与其它控件的相对位置来决定,当容器尺寸变化时,其中的控件也会自动调整
StackLayout布局: 在StackLayout管理的所有子控件中,只有顶部的一个能显示出来。通过属性topControl指定哪一个子控件处于栈顶
自定义布局: 继承Layout,实现computeSize和layout方法,computeSize容器用来计算自己的偏好尺寸。layout方法是调用shell.layout时,容器类调用的方法,这个方法真正负责排布控件的任务。
SWT事件
扩展点
org.eclipse.ui.views: 允许插件将视图添加到工作台中
org.eclipse.ui.editors: 将编辑器添加到工作台中
org.eclipse.ui.popupMenus: 允许插件添加到其他视图和编辑器的上下文菜单中
org.eclipse.ui.actionSets: 向工作台菜单和工具类添加菜单、菜单项和工具栏项
org.eclipse.ui.viewActions: 给工作台中已存在的视图添加行为
org.eclipse.ui.editorActions: 编辑器活动时,允许向工作台菜单和工具栏添加条目
编辑器类
AbstractTextEditor类:基于文本的编辑器抽象类,实现了基本的剪切、拷贝、粘帖等
MultiEditor类:该类在一个GUI组件中合并了不同的编辑器,当开发者需要使用不同类型的编辑器显示同一个资源模型时,可以使用这个类
MultiPageEditorPart类:该类用来实现多页面编辑器,每个页面包含自己的编辑器
FormEditor类:继承了MultiPageEditorPart类,用来实现基于表格的编辑器,子类必须实现addPages()方法来为FormEditor填充编辑器页面
创建透视图
首先创建透视图扩展点(org.eclipse.ui.perspectives),然后通过创建一个实现IPerspectiveFactory接口的Java类来描述透视图的布局
首选项
首先创建扩展(org.eclipse.preferencePages),并创建相应的代码
创建帮助
创建org.eclipse.help.toc 扩展点,创建toc文件。
创建备忘录
创建备忘录扩展点(org.eclipse.ui.cheatsheets.cheatSheetContent)