SWT教程1_入门

Shell 是一个窗口组件,它也是 Widget 类的一个子类。因此 Shell 组件遵从前文描述的有关窗口 组件生命周期的概念,Shell 类提供了多个构造方法,如表 3 所示。
表3
类 Shell 的构造函数
构造函数 Shell()
Shell(Display display)
Shell(Display display, int style)
当调用组件的 dispose()方法时,与其对应的平台组件将被释放,但是此时该组件对象仍然存在。 此时调用该对象的方法会有什么结果呢,如代码 2 所示。 代码 2
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
Shell 类
运行 HelloSWT 程序,可以看到一个标准的窗口程序,这个窗口就是 Shell 窗口组件。该组件作为容器 “存放”应用程序的其他控制组件,比如 Label、Text、Tree 等。当创建这些控制组件时,通常都以 Shell 组件作为其父亲组件
[注] Widget 子类之间的继承关系与创建窗口组件时的父子关系是两个不同的概念。
public class HelloSWT {
public static void main (String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("HelloSWT"); shell.open(); while (!shell.isDisposed()) {
大小可修改。 窗口包含标题栏。 BORDER | CLOSE | TITLE 的组合。 CLOSE | MIN | MAX | RESIZE | TITLE 的组合。
public static void main (String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose();
SWT 教程 1 入门
一个完整的 SWT 程序 下面的代码是一个完整的 SWT 程序,该程序创建一个标准的 Windows 窗口应用程序。
import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class HelloSWT {
Shell 对象创建在 display 之上,使用 Shell 组件的默认样式 (SWT.SHELL_TRIM)。
使用 display 和 style 样式创建 Shell 对象。
使用 style 样式,其他与 Shell()构造函数同。 以 parent 作为 Shell 对象的父亲组件,以父亲组件的 display 作为其 display,以 SWT.DIALOG_TRIM 为样式创建 Shell 对象。 采用 style 样式,其他与 Shell(Shell parent)构造函数相同。
创建 Widget 实例对象时需要传递的另一个参数是 style,该参数限定了组件的行为和外观。比如在 创建 Tree 组件时,可以使用 SWT.SINGLE 参数,该参数说明创建的树组件中不能够同时选中多个元素; 当然也可以使用 SWT. MULTI 参数。
在创建 Widget 对象时,样式参数可以是单个值, 也可以是多个样式的组合。比如在创建 Tree 组件 时,可以使用 SWT.SINGLE 和 SWT.CHECK 的组合,后者表示树中的每一个元素都有一个勾选框。当然, 在创建 Tree 组件时可以传入 SWT.MULTI | SWT.SINGLE,虽然这在逻辑上不成立,但是不会有任何编 译错误。在样式矛盾的情况下,树组件会使用 SWT.SINGLE。
if (!display.readAndDispatch()) display.sleep(); } display.dispose(); shell.setText("it is wrong!"); } } 运行代码 2,该程序能够正常启动并显示,但是当关闭程序时,会抛出 SWTException 异常,如代码 3 所示。 代码 3 Exception in thread "main" org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:2942) at org.eclipse.swt.SWT.error(SWT.java:2865) at org.eclipse.swt.SWT.error(SWT.java:2836) at org.eclipse.swt.widgets.Widget.error(Widget.java:395) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:297) at org.eclipse.swt.widgets.Shell.open(Shell.java:815) at first.HelloSWT.main(HelloSWT.java:16)
SWT 使用平台窗口组件,因此当创建一个 SWT Widget 的对象时,与操作系统相关的组件将会被创建。 当这些 SWT 对象被销毁时,相应的平台组件也会被释放。
1.创建 Widget
表 1 列出了 Widget 类的构造函数。
表1
Widget 类的构造函数
构造函数 Widget(Widget parent, int style)
因此当一个组件的 dispose()方法被调用,该组件正常释放之后,就不能够再对该组件对象以及其 孩子组件对象进行任何操作了。从理论上来说,SWT 的设计所引发的该问题的确不怎么光彩,但是在实际 开发中,这个问题非常容易避免。
Display 类
虽然 Display 类包含了众多与窗口组件相似的概念。比如生命周期、事件及其监听等。但是 Display 并不是 Widget 类的子类。Display 类没有对应的窗口形式,它用于在 SWT 与窗口平台之间建立起一座 桥梁。
表2
类 Display 的构造函数
方法 boolean readAndDispatch() boolean sleep()
描述 从窗口系统的事件队列中读取事件。一次一件地触发相应的监听 器。如果事件队列中还包含事件,返回 true,否则返回 false。
允许用户界面暂时释放 CPU 资源。
任何 SWT 程序都必须拥有一个 Display 类的实例,在 HelloSWT 中,程序的第一步便是创建该对象, 当没有事件时,通过调用 sleep()方法让该用户界面释放 CPU 资源。
} }
SWT 能够运行在多种不同的平台上,它使用平台上的窗口组件作为程序的工作及显示方式。因此在 Windows 平台上开发的 SWT 程序可以运行在 Linux 之上,并且在 Linux 上运行时其外观使用 Linux 的 窗口主题。
Widget 类
Widget 既是 SWT 中所有窗口组件的抽象基类,也是 SWT 中一个非常重要的概念。在 SWT 应用程序 中,窗口组件是用户与程序交互的接口。它是信息的载体。它将程序的数据呈现在图形化的窗口中,同时 它自身包含一定的状态。在不同的状态下,其自身的显示也会有所不同。窗口组件还用于监听用户事件, 它会根据鼠标和键盘事件改变其状态。
为 dispose()的方法,在 SWT 的开发过程中,会常和该方法打交道。该方法用于释放与组件相关的资源。 关于窗口组件的释放,有以下两个准则。
准则 1 主动创建它则主动释放它 这个准则的含义是,当在程序中使用 new 创建了一个 组件对象,就应该调用 dispose()方法来释放 它。比如在 HelloSWT 程序的最后,display 被释放就是通过调用 dispose 方法实现的。需要指出的是, display 并不继承自 Widget 类,但是在组件释放的概念上,它们是一致的。 准则 2 释放组件时其孩子组件也会被释放 按照准则 1 的概念,那么在 HelloSWT 程序中, 也应该调用 Shell 对象的 dispose()方法来释放 其孩子组件。其实不然,当释放一个组件时,其孩子组件也会被释放,比如在释放一个 Tree 组件 时,其 中的各个元素(TreeItem 组件)也会被自动释放,因此不需要主动调用这些孩子组件的 dispose()方 法。
所有的样式都以常量的形式定义在 org.eclipse.swt.SWT 类中。
不同的组件有不同的样式,在 SWT 的 Java Doc 中列出了每个 SWT 组件所允许的样式。在 SWT 中,每个 组件都能够应用其父亲组件所对应的样式。
2.释放 Widget 为了高效管理系统资源,SWT 的设计中要求 SWT 程序直接管理这些资源。Widget 类中提供了一个名
在创建 Shell 对象时,不提倡使用无 Display 对象的构造函数。即 Shell()和 Shell(int style)。 在创建 Shell 对象时,通常不需要特别指定 Shell 组件的样式。当没有父亲 Shell 作为参数时,一个常 见的 Shell 组件将被创建,该组件包含“关闭”、“最大化”、“最小化”按钮、一个标题栏并具有改变 窗口大小的功能。如果构造 Shell 时包含一个非空的父亲 Shell,则创建的 Shell 样式与通常的对话框 样式相似,该窗口包含标题栏、“关闭”按钮以及边框。表 4 是 Shell 组件的样式列表。
合集下载

swt教程

swt教程

一、开发环境搭建JDK安装、Eclipse环境搭建、新建工程、配置路径、配置服务器等二、JAVA基础培训2.1、面向对象简介(抽象、封装、继承、多态,与函数型语言的区别)2.2、基本类型、运算符、分支结构、循环结构简介详见:考核案例一2.3、集合框架(Map、List、Iterator等常用集合讲解)2.4、文件读取及IO(多种输入输出流及文件基本操作介绍:InputStream、OutputStream、RandomAccessFile等)2.5、异常处理详见:考核案例二2.6、XML文件读取详见:考核案例三2.7、多线程(synchronized关键字、锁机制、锁范围等介绍)2.8、数据操作(JDBC)详见:考核案例四三、J2EE框架培训3.1、基础环境搭建(公司框架导入及运行)3.2、J2EE应用综述(J2EE与传统应用的区别、运行环境、主流框架简介等)3.3、Spring开发流程及核心模块讲解(AOP、IoC、Bean等,及开发示例)3.4、dwr开发流程及核心模块讲解(配置文件、action调用等,及开发示例)3.5、Hibernate开发流程及核心模块讲解(映射文件、HQL、注释等、及开发示例)3.6、SSH集成详见:考核案例五四、ArcGis培训4.1、HTMl与JavaScript(4课时)Html+CSS语法介绍JavaScript 语法与对象jquery 语法介绍jquery UI 语法介绍详见:考核案例六4.2、arcgis后台培训(4课时)ArcMap操作和常用工具、数据源介绍(文件、fdb、sde)坐标系、图层管理、配图样式ArcGis Server 使用与地图服务详见:考核案例七4.3、arcgis for JavaScript(8课时)1、arcgis for JavaScript 开发包与环境搭建2、创建地图(约2分钟)3、引入静态/动态/影像服务。

4、切换底图服务。

SWT教程与常用控件

SWT教程与常用控件

第一章:SWT第一节:SWT/JFace简介SWT(Standard Widget Toolkit)即标准小窗口工具箱,是IBM公司推出的一种在Eclipse中使用的集成开发环境,SWT提供可移植的API,并与底层本机OS GUI平台紧密集成,它是一个与本地窗口系统集成在一起的小部件集和图形库。

SWT由JNI (Java Native Interface,Java 本机接口)调用操作系统的内部API,因此运行速度快,能够获得与操作系统的内部应用程序相同的外观。

JFace是一个用户界面工具箱,也是一个易用、功能强大的图形包,它简化了常见的图形用户界面的编程任务。

SWT和JFace都是Eclipse 平台上的主要组件。

JFace是在SWT的基础上创建的,但JFace并不能完全覆盖SWT的功能,JFace和SWT的关系如图4.1所示。

由于JFace的功能更强大,因此做图形界面开发时一般优先选用JFace。

第二节:开发SWT程序开发SWT程序之前,需要我们在工程里导入一个包,如下:该jar包可以在XXX\eclipse\plugins目录下找到。

导入之后,即可开发SWT程序。

一个最简单的SWT程序import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Color;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.widgets.Text;class HelloSWT {public static void main(String[] args) {// 创建一个display对象。

Display display = new Display();// shell是程序的主窗体Shell shell = new Shell(display);// 设置shell的布局方式shell.setLayout(null);// 声明一个可以显示多行信息的文本框Text hello = new Text(shell, SWT.MULTI);// 设置主窗体的标题shell.setText("Java应用程序");// 设置主窗体的大小shell.setSize(200, 100);// 声明颜色对象Color color = new Color(Display.getCurrent(), 255, 255, 255);// 设置窗体的背景颜色shell.setBackground(color);// 设置文本框信息hello.setText("Hello, SWT World!\n\n你好,SWT世界!");// 打开主窗体shell.open();// 如果主窗体没有关闭则一直循环while (!shell.isDisposed()) {// 如果display不忙if (!display.readAndDispatch()) {display.sleep(); // 休眠}}display.dispose(); // 销毁display}}•Display类:是SWT应用程序中的基础类,它负责在应用程序和本地操作系统之间建立交互。

SWT使用方法

SWT使用方法

1.Import the SWT ProjectOpen the Import wizard from the main menu via File > Import..., and select Plug-in Development > Plug-ins and Fragments. Click Next.On the Import Plug-ins and Fragments page, selectImport from: The active target platform.Plug-ins and Fragments to import: Select from all plug-ins and fragments found at specified location.Import As: Projects with source folders.Click Next.On the Selection page, Add org.eclipse.swt.{platform}.{os}.{arch}(for example: org.eclipse.swt.win32.win32.x86 for win32) to Plug-ins and Fragments to Import: list.Click Finish.This will create the org.eclipse.swt.{platform}.{os}.{arch} project which we will need to compile and run the application.2.Create a Java ProjectNow we need a project to store our own source code. In the main toolbar, click on the New Java Project button, or click on the link below. Enter HelloWorldSWT for the project name, then click Finish.3.Configure the Java ProjectSince our project requires SWT, we need to specify this in the project properties. Right-click on the project and select Properties.In the Java Build Path page open the Projects tab, add the org.eclipse.swt.{platform}.{os}.{arch} project, then click OK.4.Create a classThe next step is to create a new class. In the main toolbar, click on the New Java Class button (or the link below). If not already specified, select HelloWorldSWT/src as the source folder. Enter HelloWorldSWT for the class name and select the checkbox to create the main() method, then click Finish. The Java editor will automatically open showing your new class.5.Write the CodeIn the Java editor, enter the following Java code in the main() method: Example :Display display = new Display();Shell shell = new Shell(display);shell.setText("Hello world!");shell.open();while (!shell.isDisposed()) {if (!display.readAndDispatch()) display.sleep();}display.dispose();You will get compile errors. Right click in the Java editor and select Source >Organize Imports, then save your changes.6.RunTo run your application, right-click on your class in the Package Explorer and select Run As > Java Application. A new empty window should appear with the title "Hello world!".Congratulations! You have successfully created a Hello World SWT application!WindowsBuilder使用方法一款基于Eclipse SWT技术上的双向Java Gui设计软件。

SolidWorks_全套入门教程课件

SolidWorks_全套入门教程课件
定位尺寸,最后标注草图的形状尺寸。
复习总结绘制草图步骤
1. 指定草图绘制平面 三个基准平面;已有 特征的平面;生成的基准面
2. 绘制草图的基本几何形状 3. 编辑草图的细部 4. 确定草图各元素间的几何关系、位置关系
和定位尺寸,最后标注草图的形状尺寸
零件的组成原理
特征造型的基本原理是组合体原理,那在SW里,零件 是如何组成的呢?
本书还特别设置了【反例分析】栏目。
1.5 本教程的使用方法和 SolidWorks软件学习方法
在学习方法上注意以下几点: (1)应学习必要的基础知识,包括一些计算
机图形学的原理。 (2)要针对性地学习软件功能。 (3)重点学习建模基本思路。 (4)应培养严谨的工作作风,在建模的每一
步骤都应有充分的依据,切忌在“跟着感觉 走” 。
2.4 实例演示
• 试绘制下列的草图:
2.4 实例演示
2.4 实例演示
2.4 实例演示
2.4 实例演示
【特别提示】
正确贯彻设计意图的绘制草图应当 具有尺寸驱动特性。例如,减小左端圆弧 的半径,其它与之相连的图元应随着调整, 但几何关系保持不变,如下图所示。
2.5 三维草图的绘制
用SolidWorks软件不但能够生成2D草 图,而且还可以生成3D草图。3D草图一般 由系列直线、圆弧以及样条曲线构成。可 以将3D草图作为扫描路径,或作为放样或 扫描的引导线、放样的中心线或管道系统 中的关键实体。
引 例
1.1 Solidworks概述
• 三维设计软件的优势 • 三维设计软件的种类 • SolidWorks软件及2009版新增功能
1.1.1 三维设计软件的优势
• 1. 零件设计更加方便 • 2. 零件装配更加直观 • 3. 缩短了设计周期 • 4. 提高了设计质量

swt技巧(二)

swt技巧(二)

swt技巧(二)SWT技巧简介SWT(Standard Widget Toolkit)是一种使用Java编写的界面工具包,它提供了一组丰富的图形界面控件和功能,用于构建跨平台的桌面应用程序。

在本文中,我们将介绍一些SWT的常用技巧,帮助您更好地利用SWT开发应用程序。

开发环境搭建1.下载并安装Java Development Kit(JDK)–访问官方网站,下载适用于您操作系统的JDK安装包–执行安装程序,并根据提示完成安装2.下载并配置Eclipse开发环境–访问官方网站,下载适用于您操作系统的Eclipse IDE for Java Developers安装包–执行安装程序,并根据提示完成安装–启动Eclipse,选择合适的工作区(Workspace)–配置Java运行环境(JRE),选择已安装的JDK路径3.下载并导入SWT库–访问Eclipse官方插件市场,搜索并安装SWT插件–在Eclipse项目中,右键单击项目,选择“属性”并导航到“Java Build Path”–在“库”选项卡下,点击“添加外部JARs”按钮,选择SWT库的路径常用控件和布局管理器•Shell:应用程序窗口的容器•Composite:可嵌套的容器•Label:文本标签•Text:文本输入框•Button:按钮•Combo:下拉列表框•Table:表格•Tree:树状结构•GridLayout:网格布局管理器•FormLayout:表单布局管理器•RowLayout:行布局管理器事件处理•使用addListener()方法添加事件监听器•实现Listener接口或使用匿名内部类处理事件•常用事件类型:、、``等绘图和图像操作•使用GC(Graphical Context)对象绘制图形•使用Image类加载和处理图像数据•实现PaintListener接口处理绘图事件资源管理•使用ResourceManager类管理图像、颜色等资源•使用dispose()方法释放资源,防止内存泄漏高级功能•实现自定义控件:继承Canvas或Composite类,并重写相应方法•实现自定义布局管理器:继承Layout类,并重写相应方法•实现拖放功能:使用DragSource和DropTarget类•实现本地系统集成:使用Program类打开外部程序或文件结语本文介绍了一些常用的SWT技巧,帮助您更好地使用SWT进行应用程序开发。

SWT_Jface开发入门指南

SWT_Jface开发入门指南

SWT/Jface开发入门指南(一)SWT/Jface开发入门指南写在前面的话终于决定提起笔来写一篇关于swt和JFace编程的文章。

在开始之前,我想先介绍一下你能够从将要出现的这一系列文章里得到什么,以及更重要的,你不能得到什么。

我们的时间是如此之重要,以至于我们很难容忍把它浪费在自己不关心的事情上。

因为我刚开始写,所以到底这些文章会分成几次发布出来,也很难讲。

但是我心里大体有这样一个提纲。

也就是说,我打算介绍以下方面的内容:z设定swt以及JFace的开发环境z swt的一些简单部件(widget)介绍z JFace的一些入门性介绍z swt和JFace的事件模式z通过一些简单的例子说明如何利用swt和JFace编写图形化应用程序我还要说明一下你不能从本文中得到的信息,这些信息包括:z swt和JFace相关内容非常深入的介绍:正如你从题目中了解到的,本文的定位是“入门”,也就是说假定的读者是那些对swt和JFace开发没有什么了解的人。

所以我并不打算进行一个深入的介绍。

因为我相信在入门之后,他们能够找到更好的资料(此外,我可能会写另外一个系列文章来介绍)。

z Eclipse的使用:我假定你在读这篇文章的时候已经对Eclipse有所了解,所以不会解释到具体Eclipse如何使用。

z Eclipse插件开发:虽然Eclipse插件开发和本文内容有着千丝万缕的联系,我决定还是不把它列为介绍的内容。

这方面,你仍然可以找到相当多的资料供参考。

与作者联系如果你希望和我联系的话,你可以发email到jayliu@。

我的blog:/jayliu/延伸阅读你不知道什么是eclipse么?你可以打开/,这是eclipse的官方站点。

如果你希望对eclipse功能有详细的了解,你可以读一下这本书《CONTRIBUTINGTO ECLIPSE》。

你不知道什么是swt/JFace么?你可以看一下Wikipedia中的介绍:/SWT/wiki/Eclipse_%28computing%29你对eclipse,swt的历史感兴趣么?我强烈推荐你看一下这篇八卦:/news/newstopic/20/20433.shtml如果你对eclipse的一些新闻比较感兴趣的话,可以关注一下大胃的blog:/sean/以及kukoo的blog:/kukoo/最后你可以从一个地方得到所有你想要的东西:/OK,介绍到此为止,下面我开始正文:Hello,world!:搭建一个swt/JFace开发环境在前面我曾经提到过:我们假定你对Eclipse开发有一些了解。

Swt常用控件中文教程

Swt常用控件中文教程1、Eclipse中swt的配置建议配置:jdk1.4.2以及eclipse3.1在代码中调用swt控件之前,首先建立一个项目,然后选择该项目的properties -> Java Build Path,将standard Widget ToolKit加入到Library页当中。

如下图所示:接下来可以建立第一个eclipse小程序,新建一个class,并且在该class所对应的代码中输入如下程序,其中package以及class名称根据实际情况来确定名称。

package mypakage;import org.eclipse.swt.widgets.*;import org.eclipse.swt.*;/*导入需要的类库*/public class Myfrm1 {public Myfrm1()public static void main(String[] args) {Display display = new Display();Shell shell = new Shell(display);/*shell为一个窗口对象*/Label label = new Label(shell, SWT.NONE);label.setText("Hello, World!"); /*创建一个标签对象并且设置标题文字*/label.pack();shell.pack();shell.open(); /*打开并显示窗口*/while(!shell.isDisposed())if(!display.readAndDispatch())display.sleep(); /*在窗口没有销毁之前,显示对象一直处于等待状态*/display.dispose(); /*否则,销毁对象,释放对象所占据的资源*/label.dispose();}}运行上述代码(run -> debug -> swt application)将产生如下所示的一个窗口2、button的使用按钮可能的类型有很多,例如:SWT.BORDER 含有边框的按钮SWT.CHECK 复选按钮SWT.PUSH 普通按钮SWT.RADIO 单选按钮3、Text的使用文本框的类型也有很多种选择,例如:SWT.BORDER 含有边框SWT.READ_ONLY 只读下图为包含按钮以及文本框的窗口设计上述窗口所对应的代码为:package mypakage;import org.eclipse.swt.widgets.*;import org.eclipse.swt.SWT;import org.eclipse.swt.events.*;import yout.*;public class Myfrm1 {public Myfrm1()public static void main(String[] args) {Display display = new Display( );Shell shell = new Shell(display);shell.setSize(300, 200);shell.setLayout(new RowLayout( ));shell.setText("Button Example");final Button button = new Button(shell, SWT.BORDER);button.setText("Click Me");final Text text = new Text(shell, SWT.BORDER);shell.open( );while(!shell.isDisposed( )) {if(!display.readAndDispatch( )) display.sleep( );}display.dispose( );}}如果想对控件的位置以及大小进行精确的设置,可以使用setBounds(x, y, width, height)方法来取代shell.setLayout(new RowLayout( ))。

SolidWorks入门教程很全面


220元/门
机械制造类 Mechanical Manufacturing
Category
UG-CAM工艺设计 MasterCAM工艺设计
Cimatron工艺设计 CAXA工艺设计
UG-CAM Process Design MasterCAM Process Design
Cimatron Process Design CAXA Process Design
第五页,共217页。
第六页,共217页。
• 据最新统计:陕西地区现有5122家机械制造企
业,大部分企业都不同程度的了解或用到 SolidWorks。
• 西安航空发动机(集团)有限公司
• 西安飞机工业(gōngyè)制造公司
• 西电公司高压电瓷厂 厂
西安整流器
• 陕西鼓风机厂
• 陕西建设机械(集团)有限责任公司
220元/门
Mold Category
注塑模具设计
Injection Mould Design
220元/门
模具制造工艺设计
Mould Manufacturing Process Design
220元/门
建筑设计类 Architecture Design Category
Autocad建筑设计
AutoCAD Architecture Design
第三十九页,共217页。
• 9. 转换实体引用 • 利用(lìyòng)转换实体引用工具可以将三维实体的端面投影
到绘图基准面上,在基准面上形成端面几何图形的投影草 图,这是一种方便快捷的草图绘制方法,在创建三维实体 模型时常常用到。 • 首先选择草图绘制基准面,然后鼠标左键单击要转换的实 体端面,再单击工具栏中的【转换实体引用】按钮,便可 以完成实体端面投影到基准面形成草图。

Java程序设计之swt教程

第4章SWT图形用‎户界面本章要点1.SWT程序开‎发步骤。

2.SWT常用组‎件的使用。

3.SWT的布局‎。

4.SWT的事件‎处理。

5.SWT Design‎e r简介。

本章难点1.SWT常用组‎件的使用。

2.SWT的布局‎。

3.SWT的事件‎处理。

4.1SWT/JFace简‎介SWT(Standa‎rd Widget‎ T oolki‎t)即标准小窗口‎工具箱,是IBM公司推出的一‎种在Ecli‎pse中使用‎的集成开发环‎境,SWT提供可‎移植的A PI‎,并与底层本机‎O S GUI平台紧‎密集成,它是一个与本‎地窗口系统集‎成在一起的小‎部件集和图形‎库。

SWT由JN‎I(Java Native‎Interf‎ace,Java本机‎接口)调用操作系统‎的内部API‎,因此运行速度‎快,能够获得与操‎作系统的内部‎应用程序相同‎的外观。

JFace是‎一个用户界面‎工具箱,也是一个易用‎、功能强大的图‎形包,它简化了常见‎的图形用户界‎面的编程任务‎。

SWT和JF‎a ce都是E‎clipse‎平台上的主要‎组件。

JFace是‎在S WT的基‎础上创建的,但JFace‎并不能完全覆‎盖S WT的功‎能,JFace和‎S W T的关系‎如图4.1所示。

由于JFac‎e的功能更强‎大,因此做图形界‎面开发时一般‎优先选用JF‎a ce。

图4.1 JFace和‎S W T的关系‎4.1.1 SWT程序开‎发步骤在eclip‎se的plu‎gi ns目录‎下,找到文件or‎g.eclips‎e.swt.win32.win32.x86_3.2.1.v3235.jar,文件名中中3‎.2.1是ecli‎p se的版本‎号,v3235是‎S W T的序列‎号,不同的ecl‎i pse版本‎这两个数字也‎不同。

在DOS状态‎下,用jar命令‎将该文件解压‎,命令格式如下‎:jar xf org.eclips‎e.swt.win32.win32.x86_3.2.1.v3235.jar该命令将指定‎的文件org‎.eclips‎e.swt.win32.win32.x86_3.2.1.v3235.jar解压到‎当前目录下。

jigloo开发swt的入门教程

Jigloo 开发SWT 的入门教程作者:日期: 转载请注明出处经常有朋友苦于自己做了一个转换工具算法, 想用图形界面封装一下给同事使用, 却不知道如何下手. 本文就介绍一下如何用Jigloo 开发一个简单的SWT 应用把自己编写的public static String doConvert(String input) 方法封装成图形界面的版本. 本文适用于从未有过GUI/SWT 开发经验但是熟悉Eclipse IDE 的基本使用以及插件安装的读者, 读者同时应该对Java 语言有了解和使用的经验. 本文不讲述SWT/Swing 以及GUI 设计的相关知识.如果有读者希望用Swing 来进行这个界面的设计, 那么请您留言发表建议, 如果需要的话我将讲述Jigloo 开发Swing 的入门教程, 要实现的目的和本文相同, 但是步骤相对简单, 因为不需要安装Swing(JDK 自带了). 笔者的Code Manager .SWT 即是用Jigloo 完成了大部分的界面开发工作.期望对如何使用Jigloo 有深入了解的读者可以在安装Jigloo 插件后阅读Eclipse 帮助文档中的Jigloo GUI Builder Guide一节了解更多的技巧, 例如: 如何在大文件模式下使用Jigloo, 如何避免解析某些代码, Jigloo 如何解析界面代码以及如何打开由其它界面设计器制作的界面文件等. 这些帮助文档可以通过菜单Help -> Help Contents 来打开.一. 搭建开发环境1. SWT 类库的下载和安装SWT 是IBM 出品的类似于AWT 的组件包, 基于OS 组件封装模拟而成, 由C 代码和Java 代码混合而成. 首页: 详细介绍可以Google. 本文以Windows 版本为例进行讲解. 需要注意的是并非所有平台都能运行SWT, 详情请参考SWT 项目主页的介绍. 并且不同的平台需要对应平台的SWT 运行库.截图:下载SWT M5 from: [China] Actuate Shanghai (http) Windows 版本. 用的好处是它运行的时候不需要再指定library 路径了.然后参考Developing SWT applications using Eclipse一文中的说明搭好基于Eclipse 的开发环境.以下为文章内容的中文翻译:因为 SWT 被集成为Eclipse plug-in API 的一部分, 独立运行的应用程序开发最好基于SWT 独立版的下载. 这个文档讲帮助你安装.首先, 从SWT homepage下载适于您的平台的SWT 的.zip 文件.SWT .zip 文件可以导入到你的工作区. 选择File菜单, 然后选择Import , 选中Existing Projects Into Workspace向导. (新版本的eclipse 中, 你可以在General分类下找到Existing Projects Into Workspace).定位向导里面的路径到你下载的.zip 文件所在的目录. 这将会在工作区里创建一个名为的工程.您自己的Java 项目可以将SWT 项目作为依赖添加进来. 打开Java 项目的Properties 对话框, 在Java Build Path设置页中, 包含项目.将SWT 项目作为依赖项, 你可以使用Eclipse 的一些方便的功能例如Javadoc 视图和代码提示(code assist).现在你可以在你的项目中运行任何的主类, 通过选中类然后选择菜单Run > Run As > Java Application.2. Jigloo 的下载和安装Jigloo能识别大多数的FormBuilder 创建的GUI, 例如JBuilder 等, 运行速度比较快, 比Visual Editor 好用. 可以编辑AWT,Swing/SWT 的界面. 个人用免费, 商用需收费.Note: Jigloo is free for non-commercial use, but purchase of a Professional License is required for commercial use (after successfully evaluating Jigloo).注: 版本上笔者测试运行过的Eclipse 版本有, . 为了便于讲述, 本文所使用的Eclipse 版本是Jigloo , JDK .Eclipse:.*, *, *, ,Java:, orPlatforms:Windows, Linux (gtk) and Mac OSX. (On a Mac, only SWT GUIs can be built).下载地址:二. Jigloo 简单使用1. 初识Jigloo首先我们要如上所示新建一个名为MyProject 的Java 工程:选择菜单File -> New -> Project..., 然后选择在第一个分类中选择Java Project, 点击Next, 然后输入MyProject, 并按照上节所讲设置好依赖关系. 然后请复制下列代码然后在MyProject 的src 目录上点击右键, 选择"Paste", 这样这个转换类就出现在了工程中:public class Converter {public static String doConvert(String input) {return input + " is converted.";}}然后我们选择菜单File -> New -> Other..., 在所出现的New 对话框中打开分类GUI Forms -> SWT, 选中SWT Composite, 如下图所示:在接下来的向导对话框中保持默认的输入值不变即可:接着将会自动用Jigloo 界面设计器打开新生成的文件, 显示如下:在Outline(大纲) 页面中显示如下内容:(1) 按钮切换是否显示栅格;(2) 按钮弹出一个窗口预览当前设计界面(不经过编译);(3) 按钮编译并运行生成的代码;(4) 按钮启动/停止分析代码改动(由代码生成设计界面);(5) 按钮切换是否显示继承的组件;(6) 按钮切换界面从SWT 到Swing 或者反向转换(注意会有代码错误出现, 并非100% 准确);(7) 列出了界面中的组件层次大纲, 单击可以选中相应的组件.在编辑器页面中显示如下内容:(8) 正在设计中的界面, 点击红色控制(handle)点并拖拉可以调整组件的大小, 位置;(9) SWT/Swing 组件选择面板, 单击一个组件, 然后再单击一次(8), 即可将组件放到界面中, 同样也可以继续调节大小,位置;(12) 显示的是代码视图, 这是生成的代码, 也可以再下面修改代码, 完毕后上面将会重新解析绘制设计中的界面;在GUI Properties 页面中显示如下内容:(10) 按钮切换属性列表显示为拖拉面板(SashForm)或者多页面板(TabbedPane);(11) 属性列表, 依次为: 属性(Properties), 布局(Layout), 事件(Event).2. 拖拉快速搭建界面拖放, 预览.首先我们在(7)中选择this - Composite, Grid, 然后在(11)中选择Layout 面板, 点击树节点Layout(*), 在右侧下拉列表框中选择其值为Absolute( 绝对布局).我们选择这个布局主要是为了快速开发的关系, 虽然这不是一个很好的选择. 详细信息可以自行浏览SWT 开发相关的资料.好了, 接下来在(9)中选择面板Controls, 然后点击两次Text 控件, 放到设计面板上, 拖拉使其不要重叠并放置在合适的位置上, 这两个组件按照默认值即可, 分别为text1, text2. 如果发现放Text2 的时候无法添加上去, 请把它放到Outline 中的(7) 的this - Composite, Grid即可.最后我们把一个Button 添加上去, 在添加对话框中修改Text 值为OK.拖放各个组件(包括Composite)来布局到合适的大小和位置, 如下图所示:这时候可以点击工具栏按钮(2) 或者(3) 预览设计成的界面. Jigloo 已经帮你写好了大部分的代码, 因此无需担心界面无法显示.3. 加入事件响应代码首先点击一下界面上的"OK" 按钮, 然后选择(11)中的Event 面板, 然后展开SelectionListener , 单击widgetSelected 节点右侧的not handled 下拉框, 然后选择handler method, 这样将会生成一个点击OK 后触发的事件调用方法, 如下图所示:接着编辑器中的鼠标将会定位到刚才生成的事件方法中, 默认生成的代码如下所示: private void button1WidgetSelected(SelectionEvent evt) { ", event=" + evt);相当于调用如下一段代码:String input = ();String output = (input);(output);setText(String) 和getText() 方法分别对组件显示的文本内容进行读写操作.4. 测试点击(3) 按钮,运行, 修改text1 中的值, 然后点击OK 按钮, 可以看到运行结果正常. 如下图所示:三. 打包发布应用1. 目录布局以及复制依赖文件我们这个项目仅仅依赖, 首先在MyProject 下新建一个文件夹lib, 然后从项目下将复制到当前项目的lib 下, 即可, 最后的文件目录结构如下示:MyProject├─classes├─lib└─src2. 编写启动脚本在根目录下编写运行.bat, 内容如下所示:java -cp classes;lib\ NewComposite双击运行此批处理文件可以看到主窗口.3. 用pack200 打包发布(可以大大减小个头)如果使用的是JDK , 可以用pack200 来减小的大小, 注意用户下载后必须先解压才能运行程序.pack200用法以及批处理文件语法请自行查找相关资料.压缩所用的两个批处理文件如下:压缩.bat 发布的时候运行一次pack200 lib\ lib\del lib\解压缩.bat 用户下载后需要运行一次unpack200 lib\ lib\del lib\四. FAQ欢迎提问, 并来Wiki留言交流.一些常见小问题.Q: 我编辑下面的代码后发现GUI Properties 面板和组件层次大纲消失了A: 点击一下界面设计器中的按钮后GUI Properties 面板将会再次出现.Q: 我想给窗口设置一个标题, 并且给两个文本框设置默认的值为空, 怎么办A: 修改Properties 属性中的text 即可, 文本框的可以先在界面设计器中选中组件, 然后在GUI属性页修改即可. 主窗口的稍微复杂一点, 如下图所示需要先选中Shell, 然后再修改:Q: 我想使用多行文本编辑器(TextArea), 而文中的例子是单行文本框, 怎么办A: 将这段操作改为" 接下来在(9)中选择面板Controls, 然后点击两次TextArea控件, 放到设计面板上, 拖拉使其不要重叠并放置在合适的位置上, 这两个组件按照默认值即可, 分别为text1, text2. 如果发现放Text2 的时候无法添加上去, 请把它放到Outline 中的(7) 的this - Composite, Grid即可", 而不是使用原来的Text 控件.Q: 发现关闭Eclipse 再打开刚才设计的代码的时候没有出现Jigloo 界面设计器, 我如何才能打开它进行编辑A: 有时候Eclipse 不能记住上次打开某文件的时候所用的编辑器, 因此首先确保这个类没有被Eclipse 的其它编辑器打开, 然后右键点击文件选择"Open with->Form Editor". 如下图所示:五: 下载本文所使用的MyProject 源码下载后解开文件, 然后需要运行一次解压缩.bat, 将项目导入Eclipse 即可编译.741KBposted on 2007-03-18 17:59 BeanSoft阅读(6206) 评论(3)编辑收藏所属分类: SWT/JFACE/RCP 评论:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档