关于Eclipse平台的使用和开发第一个SWT程序

简介:

IBM把投入巨资开发的Eclipse作为一个开源项目捐献给了开源组织Eclipse.org

Eclipse出色而有独创的平台特性,现在仍由IBM子公司OTI(主要从事Eclipse开发的人)继续领导着Eclipse的开发.

Eclipse的设计思想是:一切皆为插件.Eclipse的核心是非常小的.其他所有的功能都是以插件的形式附加到这个Eclipse核心的.

这样的功能插件包括他的图形API(成为SWT和JFace).Java开发环境插件(简称JDT),插件开发环境(PDE).

Eclispe对这些插件是动态载入动态调用的,所谓动态就是指,Eclipse启动后要真正用到这个插件时,才会被调入内存,当插件不再使用时,它就会被在适当的时候清除出内存.因此即使装了一大堆插件在Eclipse中,也不必担心某些不常用的插件白白的占用内存.

Java的标准图形API:AWT/SWING界面不够美观.响应速度慢,一直被人诟病.

Eclipse的SWT/JFace图形API彻底改变了这一个状况.

他们在实现上有很大的不同:AWT/SWING是模拟本机窗口组成.而SWT/JFace则直接调用本机窗口组件.当本机没有所需组件的时候才进行模拟.

SWT/JFace没有Java的跨操作系统的特性.每一个操作系统要用Eclipse,都要移植一次SWT/JFace.但是SWT/JFace已经移植到了几个主流的操作系统平台.所以这个已经不再是一个问题了.

Eclipse的插件扩展机制是其最突出的特点和优势,它使Eclipse提升到了一个平台的高度.

Eclipse的开放源代码让他们可以阅读最顶级的Java源码.学习最优秀的Java技术.在Eclipse中阅读这些源码,有着诸多的设计模式的使用.其编码的优雅和高效真是令人叹服不已.

由于是基于Eclipse平台开发的软件,其界面美观度和相应速度是普通AWT/SWING程序所无法比拟的.并且以Eclipse插件方式来开发系统.可以基于原有Eclipse菜单,编辑器来扩展,节省了很多开发精力.

 

 

SWT/JFace

SWT(Standard Widget Toolkit)  AWT (Abstract Windowing Toolkit) 

JFace是建立在SWT之上的UI部件,是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API,其底层实现为SWT。

SUN在GUI方向上的失败是公认的事实,失败关键是java的图形API包AWT/SWING在速度和外观上都不能让人满意,外观总是和同操作系统平台格格不入,对机器配置的需求也似乎永无止境;

虽然SUN不接纳SWT/JFace作为Java中的一种图形API标准.但是它依然借着Eclipse的优异表现,以不可阻挡的势头向前发展着.拥有着标准的Windows外观.Eclipse软件就是基于SWT/JFace构建的.

为了方便开发SWT程序,在SWT基础上又创建了一个更易用,功能强大的图形包JFace.然而JFace并不能完全覆盖SWT的所有功能,所以编程时SWT和JFace都会被用到.但是一般来说能用JFace的组件就最好不要用SWT.

SWT简介补充:

SWT是一个IBM开发的跨平台的GUI开发工具包.他把GUI应用程序的基本组成部分

分为显示界面(Display),命令界面(Shell)和窗口部件(Widgets).

Display是负责管理事件循环和控制UI线程与其它线程之间的通讯.

Shell是应用程序中被操作系统窗口管理器管理的窗口.

每个SWT应用程序至少需要一个Display和大于等于一个的Shell实例.

SWT没有通过任何的Java虚拟机来操作.而是直接调用WindowsGDI和Shell功能.

也就是说,在基于Windows平台的Eclipse中,SWT通过DLL形式的本地库与操作系统交互.

而在UNIX/Mac下.SWT可以通过GTK运行.所以SWT采用了一种类似于Java虚拟机

的运行机制来适应不同的操作系统平台.

 

SWT中的包:

SWT是Eclipse图形API的基础.

1.org.eclipse.swt.widgets

最常用的组件基本都在该包中,如Button,Text,Label,Combo等.

其中最重要的组件当属Shell和Composite:Shell相当于应用程序的主窗口:Composite相当于SWING中的Panel对象.是容纳组件的容器.

2.org.eclipse.swt.layout

主要的界面布局方式在该包中.SWT对组件的布局也采用了AWT/SWING中的Layout和Layout Data结合的方式.

3.org.eclipse.swt.custom

对一些基本图形组件的扩展在该包中,例如,其中的CLabel就是对标准Label组件的扩展,在CLabel上可以同时加入文字和图片.在该包中还有一种新的布局方式StackLayout.

4.org.eclipse.swt.event

SWT采用了AWT/SWING一样的事件模型.在包中可以找到事件监听类和相应的事件对象.例如鼠标事件监听器MouseListener,MouseMoveListener等,以及对应的事件对象MouseEvent.

5.org.eclipse.swt.graphics

该包中包含针对图片,光标,字体或绘图API.例如可通过Image类调用系统中不同类型的图片文件.

6.org.eclipse.swt.ole.win32

对于不同的平台,SWT有一些针对性的API.例如,在Windows平台,可以通过该包很容易的调用OLE组件或者使得SWT程序也可以内嵌IE浏览器或Word,Excel等程序.

 

SWT Designer还无法完成所有的界面设计工作,所以在界面开发中依然是以手工写代码为主,而且手写代码在某些时候比界面拖拉操作更快捷.

SWT Designer还不是很稳定,不要在界面中加入太多的组件. 

不要频繁的移动组件,或者删除又添加组件,否则可能因为内存耗尽而死机.

(我到SWT Designer官网上去下载SWT Designer但是没有找到.......貌似在卖域名)

 >>>>>>>>>>>>>>>>后来了解到增加

原来WindowBuilder就是原来的SWT Designer.Google收购了Instantiations,把它的工具也重新免费发发布了.

用过swt designer的人都知它是非常好用的swing/swt可视化开发工具,有了它,swing/swt也可以像visual studio一样拖拉控件写程序(虽然netbean也可以,不过没怎用),可惜是个收费产品,后来把改名为windowbuilder。不过Google把这个工具的开发公司Instantiations收购了,并把这个产品免费发布。Google收购Instantiations是为了给它的GWT设计开发工具,据说也是为了它的Anroid搞开发工具.必须要安装好这个插件才能顺利的创建SWT程序的开发.

我用的是Eclipse的kepler版本,最新的Luna版本必须要求配置的JRE是1.7的版本.

采用Eclipse的在线安装.附加上Kepler版本的WindowBuilder的安装地址.(不同Eclipse版本的WindowBuilder插件是不一样的)

http://www.eclipse.org/windowbuilder/

http://www.eclipse.org/windowbuilder/download.php

http://download.eclipse.org/windowbuilder/WB/release/R201406251200/4.3/

>>>>补充:

当我第二次要在公司电脑上装这个插件的时候访问这个URL也访问不到.这里把整个的过程写下来:

右键help----->Eclipse Marketplace

有的Eclipse插件在这个市场上可以直接安装,向这个插件就不能直接安装.这个地方还挺操蛋,我一开始点击有数字的152五角星,在这个按钮的右下部分有一个小框框,具体内容我记不清了.

弹出的小框中有一个"Continue"点击这个Continue就可以访问WindowBuilder插件的网址.(但是这个小五角星点击几次之后右下部分的框框就没有了,再跳转到的网站就不是插件的网站.)

 

之后访问的网址是:

http://www.eclipse.org/windowbuilder/

点击download

http://www.eclipse.org/windowbuilder/download.php

根据你自身的Eclipse选择和适合的版本

http://download.eclipse.org/windowbuilder/WB/release/R201406251200/4.3/

这个时候就可以再Eclipse中help----->Install New Software 

 

 把http://download.eclipse.org/windowbuilder/WB/release/R201406251200/4.3/这个网址放到里面.

就可以下一步下一步的在线安装了.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>完成>>>>>>>>>>>>>>>>

 

在Eclispe中开发SWT程序的步骤:

1.在eclipse中"文件"---->"新建"----->"其他"----输入"swt" 选择SWT/JFace Java Project

 然后输入项目名字和包的名字(走默认配置就可以了) 比如建立的想项目的名字是myswt

2. 在这个项目中建立一个package.(这个方式和普通个的Java项目是一样的.)比如建立的是:com.swtdesiger2

3.在这个包上右键"新建"---->"其他"----->"输入application"选择"Windows Builder下的SWT下的Applicaiton window"

3.选择 "SWT下的Application Window"之后就输入这个java文件的名字(我这个起名字为HelloWorld2).然后会自动生成一些代码.

Eclipse自动生成的代码如下:(第一个关于SWT的HelloWorld程序)

复制代码
 1 package com.swtdesigner;// 包名
 2 
 3 import org.eclipse.swt.widgets.Display;
 4 import org.eclipse.swt.widgets.Shell;
 5 
 6 /**
 7  * created by kongxiaohan on Dec 12, 2014 Detailled comment
 8  *
 9  */
10 public class HelloWorld {
11 
12     /**
13      * Launch the application.
14      * 
15      * @param args
16      */
17     public static void main(String[] args) {
18         // 创建一个典型的SWT应用程序的步骤
19         // display负责管理实践循环和控制UI线程和其他线程之间的通信
20         Display display = Display.getDefault(); // 1.创建一个Display
21         Shell shell = new Shell();// 2.创建一个或者多个Shell(shell是程序的主窗口)
22         shell.setSize(450, 300);// 3.设置Shell的布局(设置主窗口的大小)
23         shell.setText("SWT Application");
24         // 4.创建Shell中的组件(这个例子中没有加入组件,只是一个空窗口)
25         shell.open();// 5.用Open()方法打开Shell窗口 打开shell主窗口
26         shell.layout();// shell应用界面布置
27         // 6.写一个事件转发循环.
28         while (!shell.isDisposed()) {// 如果主窗口没有关闭,则一直循环
29             if (!display.readAndDispatch()) {// 如果display不忙
30                 display.sleep();// display休眠
31             }
32         }
33     }
34 }
复制代码

点击运行出来一个空的panel:


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4159326.html,如需转载请自行联系原作者

相关文章
|
6月前
|
Java 关系型数据库 MySQL
java 网上二手车销售系统用eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 网上二手车销售系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。
39 0
|
6月前
|
Java 关系型数据库 MySQL
JSP在线小说系统用eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 在线小说系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。
59 1
JSP在线小说系统用eclipse定制开发mysql数据库BS模式java编程jdbc
|
6月前
|
Java 关系型数据库 MySQL
SSM度假村管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
SSM 度假村管理系统是一套完善的信息系统,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术html div js 后端主要技术 SSM框架 java jdbc 数据库 mysql 开发工具 eclipse JDK1.8 TOMCAT 8.5
34 0
|
3月前
|
Java 关系型数据库 BI
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
|
4月前
|
设计模式 前端开发 Java
Spring Boot之Spring MVC的工作原理 以及使用eclipse开发Spring MVC的Web应用实战(附源码)
Spring Boot之Spring MVC的工作原理 以及使用eclipse开发Spring MVC的Web应用实战(附源码)
45 0
|
6月前
|
Java 关系型数据库 MySQL
SSM培训报名管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
SSM 培训报名管理系统是一套完善的信息系统,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术html div js 后端主要技术 SSM框架 java jdbc 数据库 mysql 开发工具 eclipse JDK1.8 TOMCAT 8.5
31 0
|
6月前
|
Java 关系型数据库 MySQL
SSM宾馆客房管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
SSM 宾馆客房管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术 bootstrap.css jquery 后端主要技术 SSM 数据库 mysql 开发工具 eclipse JDK1.8 TOMCAT 8.5
39 0
SSM宾馆客房管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
|
6月前
|
Java 关系型数据库 MySQL
SSM咖啡点餐管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
SSM 咖啡点餐管理系统是一套完善的信息系统,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术html div js jquery 后端主要技术 SSM框架 java jdbc 数据库 mysql 开发工具 eclipse JDK1.8 TOMCAT 8.5
50 0
|
6月前
|
Java 关系型数据库 MySQL
java网上购物系统eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 网上购物系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。 系统运行视频 https://www.bilibili.com/video/BV1Yh4y1E7x8/
56 0
|
6月前
|
Java 关系型数据库 数据库
JSP网上手机商城系统 用eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 网上手机商城系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。
87 1
JSP网上手机商城系统 用eclipse定制开发mysql数据库BS模式java编程jdbc