让我们从简单的 HelloWorld 应用程序开始。

swt包下载可以在eclipse网站上下

进到下面这个地址里
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/S-3.4M4-200712131700/swt-3.4M4-win32-win32-x86.zip
Download from: [China] Actuate Shanghai (http)就可以了

或者直接用下面这个地址,就可以直接下载了
http://download.actuatechina.com/eclipse/eclipse/downloads/drops/S-3.4M4-200712131700/swt-3.4M4-win32-win32-x86.zip

下载完就是使用拉,怎么部署到自己的项目里去呢?继续往下看

  一、将SWT添加到工程的类路径中

  首先建立一个java工程。在开始使用SWT之前,需要将SWT库文件添加到工程的类路径中。步骤如下:

  1. 下载SWT。在Eclipse SDK的下载页面中,提供了独立版本的SWT下载。找到标有SWT Binary and Source 的栏目。下载适合你操作系统的版本,不用解压,直接保存到硬盘中。

  2. 在Eclipse菜单栏,选择File-〉Import...打开导入向导

  3. 选择Existing Projects into Workspace ,点击Next按钮

  4. 选择 Select archive file并使用 Browse...按钮来找到你刚才下载的SWT文件。

  5. 点击Finish按钮,完成SWT导入。

  6. 右键点击你建立的工程,选择Properties 来打开Properties对话框。

  7. 选择 Java Build Path tab并点击Add按钮. -> Projects

  8. 选择 org.eclipse.swt工程, 点击 OK,完成添加SWT库到你的工程中(见图1).

图 1

  二、 SWT 代码

  现在在你建立的java工程中,新建一个java文件,取名为 HelloWorld。在HelloWorld.java文件中把main()方法覆盖为以下代码:

1 public static void main(String[] args) {
2 Display display = new Display();
3 Shell shell = new Shell(display);
4 shell.setText( " Hello World " );
5 shell.setBounds( 100 , 100 , 200 , 50 );
6 shell.setLayout( new FillLayout());
7 Label label = new Label(shell, SWT.CENTER);
8 label.setText( " Hello World " );
9 Color red = new Color(display, 255 , 0 , 0 );
10 label.setForeground(red);
11 shell.open();
12 while ( ! shell.isDisposed()) {
13 if ( ! display.readAndDispatch()) display.sleep();
14 }
15 red.dispose();
16 display.dispose();
17 }

  注:

  在覆盖了上述代码后, 选择菜单栏中的 Source -> Organize Imports命令 (或者按Ctrl+Shift+O) 来把需要引用的SWT包导入到HelloWorld.java文件中 。

  以下是对各行代码的详细解释:

  第2行:每个基于SWT的应用程序都有一个Display类的实例。用来将低层平台和SWT进行链接。除了管理SWT的事件循环,还能访问SWT需要的平台资源。在16行,display实例将会提交给垃圾收集器。

  第3行:每一个窗口都有一个Shell窗口框架,来与用户进行交互。Shell像所有的 windows系统一样来处理动作行为,并作为窗口控件的放置场所。

  第4行: setText()方法设置窗口的标题.

  第5行: setBounds() 方法设置窗口的大小和放置的位置. 在这个例子中, 设置窗口为200个像素宽,50个像素高,并放在离屏幕的左上角100x100像素的位置上。

  第6行: setLayout()方法 设置窗口框架的布局. FillLayout,充满式布局管理器,使得组件大小会尽量的充满整个容器.SWT的布局管理器会在以后详细介绍。

  第7行:在shell上新建一个简单的label组件并居中显示label的文本内容。

  第8行: setText() 方法 设置label的文本内容。

  第9行:创建一个红色的颜色类的实例。你也可以使用以下语句获得系统红色的实例:

  Color red = display.getSystemColor(SWT.COLOR_RED);

  第10行: setForeground() 方法 设置label的前景色

  第11行:到目前为止,窗口框架还是不可见的。通过open()方法使得窗口可见。

  第12行: while语句循环检测窗口有没有关闭。

  第13行:display 控制事件的循环. readAndDispatch() 方法从平台的事件队列中读取事件,并分配他们到合适的处理程序(接收者)。只要队列中一直有事件可以处理,这个方法一直返回true,当事件队列为空时,则返回false(因此允许用户界面UI线程出于sleep状态直到事件队列不为空)。

  第15,16行:当循环检测到窗口被关闭时,需要将color,display和一些相关联的平台资源释放。注意到系统颜色实例(colors)将会被提交释放。

   二、 运行这个例子

  通常情况下,为了启动一个java应用程序,会使用Run As -〉 Java Application 命令。在这里,如此运行将会抛出 UnsatisfiedLinkError 异常,说明没有找到 SWT 的本地库。如果运行 Run As > SWT Application 命令,将会弹出 SWT 启动配置窗口,见图 2 ,在图 2 中可以点击 run 按钮。

图 2

点击 run ,运行结果图 3 。

图 3

swt包下载,swt包引入(一个简单的SWT程序实例及详解)相关推荐

  1. 制作一个简单的轮播图(详解新手教学)

    制作一个简单的轮播图(详解新手教学) 相信很多初学者,无论是前端还是后端,对于制作页面时,都想自己亲手制作一个轮播图. 如何制作一个轮播图: 基础知识:有HTML,Css,js基础 本文使用技术: H ...

  2. 一个简单的python程序实例(通讯录)

    这篇文章主要分享了用python实现的一个通讯录实例,学习python的朋友可以参考下核心代码: 复制代码代码如下: #!/usr/bin/python #Filename:friendbook.py ...

  3. python编写通讯录管理系统_一个简单的python程序实例(通讯录)

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. 3.2 Lucene实战:一个简单的小程序

    在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project ...

  5. 编写一个java_Java入门篇(一)——如何编写一个简单的Java程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  6. ava入门篇——如何编写一个简单的Java程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  7. 一个简单的flask程序

    初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...

  8. 用java开发一个简单的安卓程序,Android NDK开发简单程序分享(Hello Word!)

    在之前的博客中已经为大家介绍了,如何在win环境下配置DNK程序,本篇我将带大家实现一个简单的Hello jni程序,让大家真正感受一下NDK开发的魅力.这里我们选择使用C+JAVA开发Android ...

  9. 一个简单的pingpong程序测试mpi消息通讯的开销及并行计算通讯启动时间测算

    一个简单的pingpong程序测试mpi消息通讯的开销及并行计算通讯启动时间测算 一个简单的pingpong程序测试mpi消息通讯的开销 随着科技的进步,集群单节点计算能力的提高,似乎通讯开销成了并行 ...

最新文章

  1. HDU - 4858 项目管理
  2. 微软创立全新人工智能实验室,与DeepMind、OpenAI同台竞技
  3. 构建乘积数组(剑指offer)
  4. HDMI视频光端机传输故障如何调试?
  5. html5测试 iphone6sp,5款旧iPhone测试iOS运行速度:只有6S速度明显提升
  6. linux的帮助命令及区别,linux经常使用命令以及帮助命令
  7. 1、Spring Boot 中 SpringApplication初始化(ok)
  8. mysql flaskalchemy_FlaskSQLAlchemy声明性和MySQL特定的数据类型
  9. 学习OpenCV(2)OpenCV初探-2
  10. 异常信息:Unable to update index for aliyun|http://maven.aliyun.com/nexus/content/groups/public/ 解决方法
  11. WAF - SQL注入之绕过云锁 靶场实战
  12. poj 3626 Mud Puddles
  13. 拾方易告诉你:什么叫POS机封顶
  14. 快速打开Yahoo邮箱的 POP3/SMTP 服务功能
  15. 使用优启通(EasyU)重装系统教程(详细)
  16. 急!急!急!有偿求助
  17. 使用asm.jar将Android手机屏幕投影到电脑
  18. 【软件】企业管理解决方案SAP
  19. HTML页面点击下载保存文件
  20. 微信小程序报错页面未定义

热门文章

  1. Matlab电影动画的初级制作
  2. EF 多对多关系 中间表操作
  3. 基于Mui与H5+开发webapp的Android原生工程打包步骤(使用新版本5+SDK与Android studio)(部分内容转自dcloud官网)...
  4. Android 设计模式之MVC,从一个实例中来理解MVC
  5. 【NLP】Python词性标注之词性解释
  6. carplay_如何更改您的CarPlay壁纸
  7. 程序员必读书籍一览表
  8. 欢迎来到wxWindows
  9. latex:公式的序号
  10. elementui实现上传视频功能+预览