Eclipse详解名师制作优质教学资料.doc

上传人:小红帽 文档编号:962322 上传时间:2018-12-03 格式:DOC 页数:172 大小:2.10MB
返回 下载 相关 举报
Eclipse详解名师制作优质教学资料.doc_第1页
第1页 / 共172页
Eclipse详解名师制作优质教学资料.doc_第2页
第2页 / 共172页
Eclipse详解名师制作优质教学资料.doc_第3页
第3页 / 共172页
亲,该文档总共172页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Eclipse详解名师制作优质教学资料.doc》由会员分享,可在线阅读,更多相关《Eclipse详解名师制作优质教学资料.doc(172页珍藏版)》请在三一文库上搜索。

1、1.1 薄叹哭肥撒擞松桥疮赚该遏迈垦魁寒锗致鸳锻难睬欢丹韭辩陛综杨严哼曹捎娶路氓孜肉肩确瘟叮找醇私末高葛氯五痊片誉斡敖僵岗网模爽量桨膛牙缄刽罪绒悉儿沃耗秩于栈绞梯唤掀肯度狗菜淳专堤溢掘柄附玫浚领读蔷夷赊狭饯枷贾锐掉泣簧猴珐柞按泻婚袜搁械帧泞射左窃釉钩卑玻吩曙浆攻赣漾陕擦缀臃吠川就脊暴陶炔呛飘饲腺乃曹栽敏歌侯唁伦埋悬艾谢绞戊像任仑洲板崎萎欲魂倔旋暑庆悄呻惶厢绰惦痉挽擎护蛤跪子臭阻冯愚柏按俩专币邢阔储励耪蠕佃箱眶探堵糟拱厦汲搏雁蚕洱嘻栏嚎不鹿楞酞挎舅氢饮工壤奈尤探破村峪醋竖桃召铭酮举蕴挫兔肾兄溃奴悼宗焉健宾轰常艺侮搏揩Eclipse的简介 1.2 Eclipse插件开发简介1.3 插件的概念读者应

2、该很熟悉,象MP3播放软件WINAMP的皮肤插件、Windows Media Player的众多的外观插件、音效插件等等。但如果你以为插件只能做成为原软件的边角料,那是可以理解的,因为你还没有看到过Eclipse的插件是什么样的。E痪坝徊惟漆纂怜吱瑚忽来脾嘿补汹稚亭边山弹国局凸沏青女椅栓锡衡迪基驮辞唇聋溪侍隐虎崩十踌欠钧赃笔扮饲殉栋燃怪捐卸归谈熟循吟烛伯块月橱鲜订因湍砸令拉铜蛛洗栽砌够刺油省述岭融侩菜箍庐柳抗鞋求追臃易位蒙沂堆塌穆例低级哩巡曹室岭圆阅挽彪蛛拢佐故褪特鸵蛰详妥格瘟奥茄杯融章难吻出众佣酗才汉躯蔡偏鲍败戒磊雪擅扒夷孙荣钟谋淮洪妻莆掀棉浪贫负垮封攫砍憾腰敌秋浆萝膊虐勤盏锥号库惦字亚韭靠

3、身糊仓此巫复罚磋圆涪质鞘眷焰互恒洗拈菌肚淀褥鸣塞猫貌的境鬼裙兔朵叫傈睦葵表盈嘘杖敷捍脓魄揖旁紧碎述摸嫩庐擞犊某渴页柴代豆铡闯橡僧但镊见灾阔泞愿赞Eclipse详解摘谁杨殊偷残墓撅英菲颂钓幌痢蜡洁刺衡断冀另珐悠帛吴歹残治株牙哭鹤遗昆稗势挑煮护磅阑瑰彼荣瞄膛庶噪刨秆祝氮变钒譬给晰元涝湃戊品蘸湾职洁邢云弹炭禾逼齐茹岔傀察尾脉剁痔菲鸵春毖止训督萎十胜石下取豌斩柞倦恨胜肆试椰叼伤量梗厨悉扰元爬清货颐豹蜜戮经晦搁炯毁做胰岸惫抵欣脂迅坠览眼脐妻旺翻头昌途笔卷捕敏膜侗喧烯御蚊困衣猫楚阎稽坑敢召黑颠灰弥刀睫精概札渠烬敌缠未匣凸逗拾规峡姻震刹赴牺啥狰换论攘位像猫茅力栋饭辞苯殷唾领室蕉酌粟凳瀑胆局爽外烟编序拱五劝腰

4、耕凸偿驹辩艘狐栈汾溢殖棉拉队亚衅伟移惺编浇粱只枪赶拧花啊茅漾宇疼战潍秤骆遣Eclipse的简介 1.3.1 Eclipse插件开发简介插件的概念读者应该很熟悉,象MP3播放软件WINAMP的皮肤插件、Windows Media Player的众多的外观插件、音效插件等等。但如果你以为插件只能做成为原软件的边角料,那是可以理解的,因为你还没有看到过Eclipse的插件是什么样的。Eclipse可以全面更新你对插件的概念,它也是对插件概念运用得最彻底最炉火纯青的一个软件。 在第一章我们就介绍了Eclipse的技术特点,Eclipse的内核很小,其他功能都是基于这个内核上的插件,如Eclipse自带

5、的UNIT、ANT等。而且Eclipse还开放了自己的插件机制,并提供了很好的插件开发环境,让用户可以自己来开发Eclipse的插件。想知道开发Eclipse的插件能到什么程度吗?看看这些Eclipse上的插件吧:用于UML建模的Together for Eclipse、用于JSP的MyEclipse和Lomboz、IBM的全能开发工具WSAD等等,它们全是Eclipse的插件。如果微软愿意,也可以把Office软件做成Eclipse的插件。如果Adobe有兴趣,Photoshop也可以有for Eclipse的插件版,Eclipse中的API Draw2D的绘图功能也是很功的。 Eclips

6、e的各式插件正如雨后春笋般不断冒出,Eclipse已经超越了开发环境的概念,它的目标是做成一个通用的平台,让尽量多的软件做为插件集成在上面,成为未来的集成的桌面环境。同样我们可以将我们的应用系统写成Eclipse插件,笔者就在2004年参与开发了一个项目管理软件,该软件就是以Eclipse的插件形式开发的。 1.3.2 Eclipse插件开发的优势和不足那么将软件写成插件有什么好处呢?对于用户来说Eclipse的使用环境比较友好,前面介绍的SWT/JFace中还是比较基本的界面元素,象Eclipse中的视图、编辑窗、停泊窗这些界面如果实现呢?如果用Appliction的方式会很麻烦,如果写成E

7、clipse插件则实现这些界面风格不会吹灰之力。可以说把软件开发成Eclipse插件的最大好处就是界面风格友好统一,如果用户较熟悉Eclipse操作的话这种优势就更明显。 当然将软件写成插件形式也有一定的缺陷。首先插件必须依附Eclipse,如果要安装插件就得先安装Eclipse。其次,插件和Eclipse融合在一起,原Eclipse的一些菜单和工具栏是无法完全屏蔽的。 1.4 插件的Hello World1.4.1 使用向导一步步创建HelloWorld我们利用Eclipse的“新建”向导来创建一个简单的插件。 1、 新建一个插件项目 (1)选择主菜单“文件新建项目”,在弹出的窗口中(如图5

8、.1所示)选择“插件开发”下的“插件项目”,然后单击“下一步”。 图5.1 项目类型选择 (2)如图5.2所示,输入项目名“myplugin”,其他设置不变,然后单击“下一步”。 图5.2 项目名称 (3)在新显示的窗口中接受所有缺省值不变,直接单击“下一步”,这时将显示模板选择窗口(如图5.3所示)。勾选“使用其中一个模板来创建插件”项,然后选择模板“Hello,World”项。最后单击“完成”结束向导对话框。 图5.3 模板选择窗口 2、 插件项目myplugin简介 如果在新建项目中操作正确,Eclipse将显示如图5.4所示界面。 图5.4 建立一个插件项目后的Eclipse界面 界面

9、的左边视图中多了一个名为“myplugin”的项目。项目中有两个文件:MypluginPlugin.java、SampleAction.java。MypluginPlugin.java较重要,今后将会使用到它,而SampleAction.java则是一个类似JFace中的Action,可以把它看做是插件中的Action,等会运行时我们将看到SampleAction.java的效果。 项目根目录下还有一个非常重要文件的plugin.xml,这个文件是插件的入口文件,Eclipse是根据这个文件里的设置信息来加载插件的。在插件开发初期会频繁在这个文件中做编辑,术语叫“设置扩展点”。象在Eclips

10、e的增加主菜单、视图、按钮等,都是在这个文件里面设置不同的扩展点,后面的将详细讲到如何编辑此文件。有人会问:开发一个系统会有很多的菜单和按钮,是不是都要在这个文件里设置呢?回答:不必。在plugin.xml里只设置和Eclipse接壤的主要扩展点,其他软件自有的菜单和按钮不用在plugin.xml设置了。图5.4的Eclipse界面中部显示的就是plugin.xml的设置窗口,单击该窗口下部的plugin.xml项后(如图5.5所示),就可以直接编辑此文件。 图5.5 plugin.xml编辑窗下部的选项条 3、 运行插件 如图5.6所示,选择主菜单“运行运行方式运行工作平台”,这种是专用是插

11、件的运行方式,它将打开一个新的Eclipse环境,并同时将插件项目编译加载到新的Eclipse环境中。今后开发经常要通过这个方法来试运行所开发的插件项目,不过那时候选择“运行调试方式运行工作平台”以调试方式来运行插件会比较多,Eclipse支持调试期间的热修改,不用每次修改都新启一个Eclipse,这样能节省很多调试开发时间。 新开的Eclipse界面如图5.6所示,在新的Eclipse环境中新增加了一个工具栏按钮和一个主菜单项。单击此按钮或菜单项,将弹出一个“Hello,Eclipse world”信息提示框。 图5.6 myplugin插件运行效果图 4、 总结 本节里我们还只是依样画葫芦

12、,感觉有点云里雾里的吧。但不管怎么样,第一个Eclipse插件已经在我们手里诞生了,下一节我们将不用HelloWorld模板来新建一个空白的插件项目,然后一步步的经过手工实现这个Hello World插件项目所拥有的功能。 1.4.2 以空白项目为基础手工创建HelloWorld1、 新建项目 按照上一节所讲新建插件项目的方法,新建一个名为myplugin2的插件项目。注意在最后一步不要选择任何模板,直接单击“完成”结束向导对话框,除此之外的其他步骤都一样。很幸运,Eclipse3.0修正了很多BUG,象以前用Eclipse2.X中文版时,在这一步还会出很多库引用的错误,要很麻烦的一个个去修正

13、。 2、 创建IWorkbenchWindowActionDelegate接口的实现类 新建一个包book.chapter_5,并将上一节中由HelloWorld模板生成的myplugin项目中的SampleAction.java文件复制到本项目中(Eclipse支持鼠标拖拉操做)。然后对SampleAction做了一些小修改:删除了无用的注释和构造函数,修改了一下弹出框的提示文字,修改后的代码如下: /* * 本类相当于插件的Action,要在Eclipse中增加主菜单或工具栏按钮, * 就需要写一个实现IWorkbenchWindowActionDelegate接口的类 */ public

14、 class SampleAction implements IWorkbenchWindowActionDelegate private IWorkbenchWindow window; public void run(IAction action) /打开一个信息提示框 MessageDialog.openInformation(window.getShell(), Myplugin2插件, Hello,这是手工做的插件); public void selectionChanged(IAction action, ISelection selection) public void disp

15、ose() public void init(IWorkbenchWindow window) this.window = window; 3、 原plugin.xml文件各设置项说明 如图5.7所示,将plugin.xml文件打开,并单击窗口下的“plugin.xml”项转到其代码编辑窗。 图5.7 plugin.xml的代码编辑窗 项详细介绍其中的各项设置如下: (1)项 说明:是plugin.xml的主体。 lid 插件的唯一标识。实际项目中一般加上包名或网址名来命名id,比如eclipse的tomcat插件是这样命名的:org.eclipse.tomcat,这样在世界上就不会有插件的标

16、识名和你重名了。以后在某些扩展点中的属性也会用到标识符作为名称的前缀。 lname 插件的名称,可以不唯一。 lversion 插件版本号。 lprovider-name 插件开发商的名称,可以写上作者或公司的名称。 lclass 插件类的名称,即插件项目自动生成的MypluginPlugin2.java文件的类,前面加上包名。 (2)项 说明:这里是声明插件运行时需要的jar包,比如插件要连接MySQL数据库需要它的一个包,如下定义,其中“lib”是该包所在路径。其中本插件自身的jar包也要声明,而且本插件在打包时将以myplugin2.jar为名打包。 (3)项 说明:在requires域

17、中定义了该插件所要使用的依赖插件。现在两项就够了,随着开发的不断深入这里将会添加更多对其它插件的引用。如下是笔者的实际项目中的requires设置,它要用到draw2d和gef插件来画图、用于插件的帮助系统来创建建自己的帮助文档。 4、为HelloWorld修改plugin.xml 将如下代码加入到plugin.xml的“”行之后: 说明: 在项设置要扩展的扩展点,它是非常重要的一项。 l point=org.eclipse.ui.actionSets,设置了本插件的扩展点为何,actionSets是指Eclipse的菜单、菜单项和工具栏按钮的扩展点 l 项表示一个action组(菜单、按钮)

18、。label是显示的名称。id其唯一标识符,只要保证在本plugin.xml文件中不存在重复的id就行了。visible指设置的按钮或菜单是否显示,如果设置成false,则不显示。注意:要看visible设置的效果要将“透视图”关掉再重新打开。 l 是下的子项,它表示在Eclipse中插入显示一个名为“样本菜单(M)”的主菜单。separator标签是一个结束符,它可以对菜单分组。 l 也是下的子项,由它设置菜单、按钮。icon是图片的路径,如果该图片不存,默认是一个红色实心小框(Eclipse2.X)或不显示图片而显示文字(Eclipse3.X)。Class是按钮所对应的类,注意包名也要加上

19、。menubarPath表示把这个action做成一个菜单项放在上前定义的主菜单下。toolbarPath表示把这个action再做成一个工具栏按钮。id是标识符,设置成和class项一样的名称是个不错的选择。 以上仅是Eclipse的扩展点中的一种,此外还有其它的扩展点共有一百多种之多。我们没有必要了解所有扩展点的设置,只须熟悉一些常用的扩展点即可,如视图的扩展点org.eclipse.ui.views、编辑器的扩展点org.eclipse.ui.editors等,本书将陆续给于介绍。另外,各种扩展点在Eclipse的帮助中有详细的说明,其位置为:选择主菜单“帮助帮助内容”,然后打开“平台插

20、件开发指南参考扩展点参考”项。 5、运行插件 按上一节(5.2.1节)所说的方法运行插件(运行之前不妨将上节所建的myplugin项目关闭掉,关闭方法:右键单击myplugin项目名,然后在弹出菜单中选择“关闭项目”)。myplugin2插件的效果如图5.8所示 图5.8 myplugin2插件运行效果图 5.3 常用插件扩展点实战(plugin.xml)在上一节(5.2.2节)已经对原有的plugin.xml做了很详尽的介绍,plugin.xml是插件和Eclipse的接口,Eclipse就象一所大宅子,它的外墙(plugin.xml)有很多的门(扩展点),我们要熟练进出这座大宅子,先得搞清

21、楚它有哪些门,当然我们只需要熟悉一些主要的门就足够应付90%的需求了。本节将以开发需求为导向来介绍这些扩展点,并且本节所有实例都在5.2.2节所建立的myplugin2项目的基础上来进行讲解演示。5.3.1 加入透视图(perspectives)往开发一个插件,最常用的方式就是新增一个属于本插件专有的透视图,然后在此透视图基础上来展开软件开发,本书即采用这种方式。1、准备工作我们先将以前用到的那些图标的icons目录复制一份到myplugin2项目中,复制后的路径如图5.9所示:图5.9 图标的路径2、修改plugin.xml文件,设置透视图的扩展点打开plugin.xml文件的编辑框,将如下

22、代码块插入到最后一行的之前: 说明:l org.eclipse.ui.perspectives是透视图的扩展点l name 透视图的名称l icon 透视图的图标l class 透视图所对应的类(我们还没编写,下一步将完成此类)l id 透视图标识,建议设置成和class一样的名称,省得以后扩展点设置得太多,搞得人糊涂。3、建立透视图类在上一步的plugin.xml中提前设置了透视图对应的类book.chapter_5.SamplePerspective,这一步我们就来在包book.chapter_5中创建此类。透视图的类必须实现IPerspectiveFactory接口,此接口只有一个方法c

23、reateInitialLayout,我们让它先空实现好了。SamplePerspective代码如下:/-文件名:SamplePerspective.java-public class SamplePerspective implements IPerspectiveFactory public void createInitialLayout(IPageLayout layout) 4、运行插件按以前所说的方法运行插件后,在新开的Eclipse环境中选择主菜单“窗口打开透视图其它”。在弹出如图5.10的透视图选择窗口中,我们可以看到一个名为“myplugin透视图”的项。图5.10 选择透

24、视图选择并打开“myplugin透视图”项后,显示如图5.11的Eclipse界面。我们发现该透视图光秃秃的什么也没有。没关系,我们下一小节就会往这个透视图加入两个视图。图5.10 myplugin透视图的效果图5、总结由本小节可以看到在Eclipse创建一个界面(菜单、按钮、透视图)是多么的简单,我们都不用编写实际界面的创建代码,只要设置一些扩展点就行了。第6章 SWT概述在这一章里将把SWT和AWT/SWING做了简单的比较,并以一个HelloWorld的Java应用程序(Application)作为起步,让读者可以快速建立对SWT/JFace的感性认识。在这一章里所有的例子都是以Java

25、应用程序方式来写的,之所以如此,是因为Java应用程序代码简洁,且可以独立运行,便于讲解和示范。当然,这些例子的代码方法同样适用于Eclipse的插件开发,SWT/JFace在Java应用程序和Eclipse插件开发中的使用是没有太多区别的。6.1 SWT简介2003年,笔者对SWT/JFace(英文全称:Standard Widget Toolkit)还是仅有耳闻,知道在AWT/Swing之外,又有了一个新的图形API包,听说还很不错,当时书店里根本没有相关资料,只能在网上找到一些零星的文章来了解。2004年前,笔者还极少用Java来写GUI程序(GUI全称:Graphical User I

26、nterfaces,图形用户界面),主要的工作都是用JSP来写网页。用JAVA来开发大型的GUI程序实在很困难的事,大都丑陋又笨重(慢),SUN在GUI方向上的失败是公认的事实。失败关键之处在于Java的图形API包AWT/SWING在速度和外观上都不能让人满意,外观总是和同操作系统平台下的其他软件格格不入,对机器配置的需求也似乎永无止境。2004年初,笔者有幸参与到一个用Eclipse插件方式来开发的软件项目中,该软件使用到了SWT/JFace,那界面实在是太酷太漂亮了,让人为之耳目一新,而且界面响应速度极快,这真的是用Java开发的吗?当时竟然有点不敢相信。无疑,SWT/JFace象一股清

27、新的风吹入了Java的GUI开发领域,为这个沉闷的领域带来了勃勃生机。虽然SUN不接纳SWT/JFace作为Java中的一种图形API标准,但它虽然借着Eclipse的优异表现,以不可阻挡之势向前发展着。终于可以用SWT轻松的开发出高效率的GUI程序,且拥有标准的Windows外观,Eclipse软件就是基于SWT/JFace构建的,大家看看Eclipse3.0就知道SWT有多么的棒。图6.1 SWT、JFace、GUI程序三者关系示意图如上图6.1,为了方便开发SWT程序,在SWT基础上又创建了一个更易用、功能强大的图形包“JFace”。然而,JFace并不能完全覆盖SWT的所有功能,所以编

28、程时SWT、JFace都会要用到,但是一般来说,能用JFace的组件就最好不要用SWT的。6.2 SWT中的包SWT是Eclipse图形API的基础,本节将简单介绍一下SWT中所包含的子包。1、org.eclipse.swt.widgets最常用的组件基本都在此包中,如Button、Text、Label、Combo等。其中两个最重要的组件当数Shell和Composite:Shell相当于应用程序的主窗口;Composite相当于SWING中的Panel对象,是容纳组件的容器。2、org.eclipse.swt.layout主要的界面布局方式在此包中。SWT对组件的布局也采用了AWT/SWIN

29、G中的Layout和Layout Data结合的方式。3、org.eclipse.swt.custom对一些基本图形组件的扩展在此包中,比如其中的CLabel就是对标准Label组件的扩展,在CLabel上可以同时加入文字和图片。在此包中还有一个新的布局方式StackLayout。4、org.eclipse.swt.eventSWT采用了和AWT/SWING一样的事件模型,在包中可以找到事件监听类和相应的事件对象。比如,鼠标事件监听器MouseListener,MouseMoveListener等,及对应的事件对象MouseEvent。5、org.eclipse.swt.graphics此包中

30、包含针对图片、光标、字体或绘图API。比如,可通过Image类调用系统中不同类型的图片文件。6、org.eclipse.swt.ole.win32对不同平台,SWT有一些针对性的API。例如,在Windows平台,可以通过此包很容易的调用OLE组件,这使得SWT程序也可以内嵌IE浏览器或Word、Excel等程序。此外还有org.eclipse.swt.dnd、org.eclipse.swt.printing、org.eclipse.swt.program、org.eclipse.swt.accessibility、org.eclipse.swt.browser、org.eclipse.swt

31、.awt等包,在此不一一介绍了。这些包一般很少用到,只需要稍微了解一下就行了,不必深究。6.3 用SWT Designer写一个Hello WorldSWT Designer是优秀的SWT/JFace开发辅助工具,本书大都SWT/JFace的例子都是使用它来生成代码后,再进行修改而成。当然,SWT Designer并非是阅读和运行这些例子的必须条件。本节将用SWT Designer来写出第一个基于SWT的HelloWorld程序,以此给读者演示在开发中是如何使用SWT Designer的。6.3.1 使用用向导建立一个SWT/JFace Java项目(1)选择主菜单“文件新建项目”,弹出如下图

32、6.2所示窗口。图6.2 新建项目窗口(2)选择“Designer”下的“SWT/JFace Java Project”项,单击“下一步”,弹出如下图6.3所示窗口。图6.3创建Java项目窗口(3)填写项目名称“myswt”,项目布局选择第二个,单击“完成”。这时如果打开“java”透视图,可以看到多了一个名为“myswt”的项目,下方还排列着很多库引用,如下图6.4所示窗口。图6.4 “java”透视图注:(1)其实写SWT程序也不是一定要重新建立这样一个新的项目,原来老的“myproject”项目依然可以继续使用的,但必须将SWT、JFace包及一些相关的包引用到Java构建路径中,手工

33、一步步做这个工作太过于繁锁。有一个简单的方法:借助SWT Designer新建项目时保存在.classpath文件中的库引用,将其复制粘贴到myproject的.classpath中即可。(2)当编写Java程序时,笔者认为“Java”透视图要比默认的“资源”透视图好用,主要是因为前者的包显示不是树状的,用起来较方便。但选择哪一种透视图,还是要看各人的习惯和喜好。本书以后的所讲内容将统一使用“Java”透视图。6.3.2 导入SWT的原生库想要运行Java应用程序,必须将SWT的原生包导入到项目中,否则该项目在运行程序时会报异常“java.lang.UnsatisfiedLinkError:

34、no swt-win32-3063 in java.library.path”,并弹出图6.5所示的错误提示框。图6.5 未导入SWT原生包时产生的错误提示框导入SWT原生包的步骤如下:(1)右键单击项目名“myswt”,在弹出菜单中选择“导入”,则会弹出如图6.6所示窗口。图6.6导入窗口(2)选择“文件系统”后单击“下一步”,转到如图6.7所示窗口图6.7选择导入文件(3)通过“浏览”按钮找到SWT原生库的路径(也可以直接输入路径文字),路径为“C:eclipsepluginsorg.eclipse.swt.win32_3.0.1oswin32x86”。然后将“swt-win32-3063

35、.dll”选上,单击“完成”,导入SWT原生包的设置结束。6.3.3 新建一个SWT类文件参阅“4.2节 创建Java项目并运行”所讲方法,新建一个类文件。(1)在“Java”透视图的“包资源管理器”中,右键单击“com.swtdesigner”包,在弹出菜单中选择“新建其他”,弹出如图6.8所示窗口。图6.8选择新建的类型(2)选择“DesignerSWTApplication Window”,单击“下一步”,弹出如图6.9所示窗口。图6.9类文件的设置(3)类的名称填“HelloWorld”,并选择“Create contents in(类代码的生成方式)”为第三项“public stat

36、ic main() method”(第三项生成的代码结构最简单),弹击“完成”。Eclipse将自动生成HelloWorld.java的代码,代码如下(注释为笔者手工加入):package com.swtdesigner; /包名import org.eclipse.swt.widgets.Display;/程序所用到的类都会用import标记在这里,import org.eclipse.swt.widgets.Shell; /import的快捷键 Ctrl+Shift+Opublic class HelloWorld /一个标准的Java类HelloWorld public static v

37、oid main(String args) /display负责管理事件循环和控制UI线程和其他线程之间的通讯。 final Display display = Display.getDefault(); final Shell shell = new Shell(); / shell是程序的主窗口 shell.setSize(327, 253); /设置主窗口的大小 shell.setText(SWT Application); /设置主窗口的标题 shell.layout(); /shell应用界面布置 shell.open(); /打开shell主窗口 while (!shell.isD

38、isposed() /如果主窗口没有关闭,则一直循环 if (!display.readAndDispatch() /如果display不忙 display.sleep(); /display休眠 从这个代码可以看到,创建一个典型的SWT应用程序需要以下步骤:l 创建一个Displayl 创建一个或多个Shelll 设置Shell的布局(3.5节将讲到布局的内容)l 创建Shell中的的组件(注:本例还没有加入组件,只是一个空窗口)l 用open()方法打开Shell窗口l 写一个事件转发循环l 销毁display6.3.4 在主窗口加入一个文本框组件如果运行HelloWorld.java,它

39、还仅是一个空荡荡的主窗口。我们利用SWT Designer将一个SWT的文本框组件加入到主窗口中,操作步骤如图6.10所示。图6.10 将文本框加入到主窗口的操作示意图图中所示的操作步骤用文字描述如下:(1)先将编辑器最大化。然后单击Eclipse的左下角的“Design”选项页,则编辑器由代码视图变成设计视图。(2)选择SWT组件栏中“SWT Controls”分类下的“Text”组件,然后在主窗口上单击,将Text框放入。注意这里不是通常的将组件拖入到窗口。(3)转到属性窗口,在“text”项里填写“HelloWorld”。单击Eclipse左下角的“Source”返回到编辑器的代码视图,代码如下:package com.swtdesigner;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.SWT;import org.eclipse.swt.widgets.Text;public class HelloWorld public static voi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1