`
mypyg
  • 浏览: 549620 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SWT学习(一)

    博客分类:
  • Java
阅读更多
1.下载swt:
http://www.eclipse.org/swt/
在Release栏下载目标平台所需要的zip包,解压到某个目录。
Windows:
http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/download.php?dropFile=swt-3.6.2-win32-win32-x86.zip
Linux:
http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/download.php?dropFile=swt-3.6.2-gtk-linux-x86.zip

2.将swt导入到workspace中作为一个project,供其余的project引用。
Import-->Existing Projects into Workspace

3.Hello World
3.1Swt基础概念:
3.1.1所有的内容都要通过Display对象来输出,一般一个程序只有一个Display对象。
3.1.2窗口被称为Shell
3.2创建工程,并引用Swt工程
New-->Java Project
在新创建的工程上点右键,选Properties,修改Java Build Path:
选项卡选择Projects-->Add,勾选刚导入的swt工程,此时要保证此swt工程是打开状态的。
勾选后就可以使用swt包中的类了。
3.3创建HelloWorld类:
New-->Class
输入类名,并勾选创建main函数。
3.4创建Display和Shell
Display display = new Display();
Shell shell = new Shell(display)
3.5设置shell标题栏文本
shell.setText("Hello world!");
3.6显示窗口
shell.open()
试试执行一下,屏幕上一个窗口一闪而过,什么都没看清,这是因为shell.open执行完毕后程序退出了,窗口自然消失了。
3.7在shell.open()后加个死循环等待看看
for(;;) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
再执行一下,可以看到一个窗口出现,但是什么事件都不响应。
3.8不响应事件是因为循环中没有处理事件,将循环修改一下,改成调用Display类的事件读取分发函数,则就能响应事件了。
while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
}
3.9当程序执行完毕时回收资源。
display.dispose();
在swt中有两个原则:
3.9.1谁创建谁dispose,就好像内存分配回收一样,display是被创建的,所以要被dispose。shell在关闭窗口时已经dispose了,所以不必再dispose。
3.9.2父组件dispose时会dispose所有子组件。

完整的代码:
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;


public class HelloWorld {
	public static void main(String[] args) {
		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();
	}
}


4.导出可执行的jar
Project -> right click -> export -> JAVA -> Runnable JAR file 选择要输出的project和保存位置就可以得到可运行的jar文件了。
不过电脑的jar文件一般都与压缩文件关联了,点击就被解压缩了,所以要修改打开方式:
http://blog.csdn.net/zqiang_55/article/details/6908660

首先说说在 win7  下
1、选择默认程序:右击jar包,打开方式->选择默认程序->浏览,选中jre下bin文件中javaw.exe(比如我的javaw.exe在D:\Program Files\Java\jre6\bin下)。
2、编辑注册表:HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,修改数据数值为"D:\Program Files\Java\jdk1.6.0_21\jre\bin\javaw.exe" -jar "%1"(只要在原来的数值下添加-jar即可)。
大功告成,jar文件就可以直接运行了。
改成下面会更好:
将键值改为"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %*
原理:就是运行
javaw -jar 【jar文件】 【参数信息】
其中【jar文件】 【参数信息】分别对应%1 %*
%1加双引号是防止路径中有空白

其次是在 xp 下
1 打开我的电脑 -> 工具 -> 文件夹选项
2 在 文件夹选项 中的选项卡中选择 文件类型 --> 单击 新建 按钮  -->输入扩展名 jar (注意此处没有 “ . ” )
3 选择 新建的那个JAR文件  ---> 点击 高级
4 单击 新建 按钮 --> 将操作名 命名为 open    执行操作的应用程序选择 javaw 所在的 位置 C:\Program Files\Java\jdk1.6.0_10\jre\bin\javaw
5  注意此处的javaw 为 jre\bin  下的javaw         C:\Program Files\Java 为我安装的 java目录,根据自己的安装路径选择
6  单击确定 然后再 编辑 此时可以看到 执行程序变为  "C:\Program Files\Java\jdk1.6.0_10\jre\bin\javaw" %1
7 将其改为  "C:\Program Files\Java\jdk1.6.0_10\jre\bin\javaw" -jar %1 单击确定就 ok 了


PS:为了方便布局界面,可以安装WindowBuilder插件,可以在此页面找到:http://www.eclipse.org/windowbuilder/download.php
或者直接使用:http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7
因为是google的网站,你知道的,不是那么稳定,自己想办法了。
安装WindowBuilder Engine以及SWT Designer
安装以后就可以:new project -> windowBuilder -> SWT designer -> swt/jface java project 新建windowbuilder项目了。
如果要添加一个界面相关的类,不要直接添加class,而是add other->window builder->SWT designer->SWT里面添加需要的类。

1
2
分享到:
评论

相关推荐

    swt入门学习资料

    总的来说,SWT 是 Java GUI 开发的一个强大选择,尤其适合那些需要原生外观和高性能的应用。对于初学者来说,理解 SWT 的基本概念、组件体系结构以及如何设置和运行环境是入门的关键。通过学习 SWT,开发者可以创建...

    SWT编程开发学习资料

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的一部分。SWT的设计目标是提供一个高效、原生的GUI库,能够利用操作系统提供的功能,以实现更丰富的用户...

    swt学习资料pdf

    在"swt学习资料pdf"中,我们可以期待涵盖以下几个关键知识点: 1. **SWT的起源和发展**:SWT的出现是为了克服Java AWT和Swing库在性能和平台原生性上的局限。通过直接调用操作系统API,SWT能够实现更高的性能和更好...

    SWT 案例之学习精华

    SWT,全称为Standard Widget Toolkit,是Eclipse项目下的一个开源图形用户界面(GUI)工具包,主要用于构建Java应用程序的用户界面。它提供了一系列丰富的组件,如按钮、文本框、菜单等,使得开发者能够创建出功能...

    swt tree学习文档

    ### SWT Tree 学习文档知识点总结 #### 一、SWT Tree 概念与应用场景 SWT (Standard Widget Toolkit) 是一种用于构建图形用户界面(GUI)的应用程序框架,广泛应用于Java开发环境中。SWT提供了丰富的组件库,使得...

    swt - designer 学习实例

    这个"swt - designer 学习实例"压缩包显然包含了一系列关于如何使用SWT进行编程的示例,这对于学习和理解SWT的用法非常有帮助。SWT为Java开发者提供了与本机操作系统深度集成的用户界面组件,如按钮、文本框、列表等...

    学习SWT,RCP的笔记.doc

    SWT(Standard Widget Toolkit)是一种专为Java设计的用户界面工具包,它提供了一系列的原生控件来创建丰富的客户端应用。SWT的一个显著特点在于它能直接调用操作系统的GUI资源,这意味着SWT的应用程序在不同的平台...

    SWT源码 swt.jar

    描述中提到的"src.zip"文件包含的是SWT的源代码,这对于开发者进行调试、学习和定制SWT行为至关重要。源代码可以被导入到任何支持Java开发的IDE,比如Eclipse,通过关联源码,可以在编写代码时直接查看SWT的内部实现...

    swt 学习代码

    SWT(Standard Widget Toolkit)是Eclipse开源组织提供的一款用于创建Java图形用户界面(GUI)的库,它为开发者提供了丰富的组件和API,使得在Java平台上构建桌面应用程序变得更加容易。本学习代码着重关注SWT的基本...

    swt 开发学习

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一种图形用户界面(GUI)工具包,由Eclipse基金会开发并维护。它提供了一系列丰富的组件,使得开发者可以构建功能强大的跨平台应用程序。SWT...

    SWT相关学习资料(多个pdf文档)

    总的来说,这些学习资料提供了全面而深入的SWT学习路径,从基础到进阶,从理论到实践,对于想要提升Java GUI开发技能,特别是涉及Eclipse RCP开发的人员来说,是一份宝贵的资源。通过系统学习,开发者不仅可以掌握...

    swt-api swt DOC

    【标题】"swt-api swt DOC" 指的是一个关于SWT(Standard Widget Toolkit)API的文档,主要用于Java GUI(图形用户界面)开发。这个文档可能是开发者们在使用SWT进行界面设计时的重要参考资料。 【描述】"java界面...

    SWT控件知识学习笔记

    ### SWT控件知识学习笔记 #### 一、SWT/JFace常用组件介绍 SWT (Standard Widget Toolkit) 是 Eclipse 平台的一个图形界面工具包,它提供了与平台无关的 GUI 组件,允许开发者构建高性能的应用程序。SWT/JFace ...

    Java swt完整教程

    Java SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一种图形用户界面(GUI)工具包。它是Eclipse基金会的一部分,提供了与操作系统本机UI组件紧密集成的能力,使得开发出的程序具有原生...

    swt 学习资料02

    在这个"swt 学习资料02"的压缩包中,我们关注的核心知识点是“定时器”和“键盘事件”。 1. **定时器(Timer)**: - **定时器原理**:定时器在Java GUI编程中用于在特定间隔执行某些任务。SWT提供了`Display....

    swt高级密笈源码swt

    SWT(Standard Widget Toolkit)是Eclipse开源组织提供的一款用于创建Java图形用户界面(GUI)的库,它为开发者提供了丰富的控件和功能,使得在Java中开发美观且高效的桌面应用变得可能。"SWT高级密笈源码"很可能是...

    SWT插件中文教程SWT常用方法

    总的来说,SWT插件的常用方法涵盖了控件的创建、布局管理、事件处理等多个方面,学习并掌握这些方法对于编写高效、美观的Java GUI应用至关重要。通过阅读这个中文教程,开发者能够深入理解SWT的工作原理,并能够熟练...

    SWT的官方压缩包

    1. `src.zip`:这是SWT源代码的压缩包,开发者可以查看和学习SWT的内部实现,或者在遇到问题时进行调试。 2. `swt.jar`:这是SWT的核心库文件,包含了运行SWT应用所需的类和资源。将它导入到Java工程中,可以让程序...

    Swt.JFace.in.Action 和 SWT 学习资料(两份资料)

    SWT是Eclipse项目的一部分,提供了一种直接访问操作系统原生GUI组件的方式,而JFace则是建立在SWT之上,为开发者提供更高层次、更抽象的API,简化了UI设计和数据绑定。 Swt.JFace.in.Action这本书是一本关于SWT和...

    SWT开发教程1

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse IDE的基础。SWT的设计目标是提供一个高效、功能丰富的GUI工具包,能够与本地操作系统紧密集成,从而获得更好...

Global site tag (gtag.js) - Google Analytics