Eclipse浏览器制作.docx
- 文档编号:8985252
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:39
- 大小:209.56KB
Eclipse浏览器制作.docx
《Eclipse浏览器制作.docx》由会员分享,可在线阅读,更多相关《Eclipse浏览器制作.docx(39页珍藏版)》请在冰豆网上搜索。
Eclipse浏览器制作
湖南工学院计算机信息管理专业
实训项目
项目名称:
Eclipse浏览器制作
项目组名:
六世烟火
项目组员:
吴金龙(项目经理)
邱彬彬、周伟(文案)
胡智浩(美工)
欧雪虹(程序员)
王子豪(运维)
摘要
本篇论文将会在Eclipse平台下做界面开发的研究,并应用SWT的基本控件和事件处理,制作一款桌面式的浏览器。
该款浏览器除了实现基本的上网功能外,还可以作为一个用户桌面,实现快捷的浏览和调用应用程序的功能。
也能够实现部分系统操作。
同时,它具Java有跨操作系统的特性,拥有本地化外观的特点。
关键词:
Eclipse,界面开发,SWT,桌面浏览器
Abstract
Inthisarticlewe’lldoGUIinterfacedevelopmentandresearchintheEclipseplatform,andusingthebasicSWTControlsandeventhandlingtomakeatablestylebrowser.Besidesthebasicbrowserfunctions,itcanbeusedasausertabletorealisecallinglocalprogramandsoftware,andalsopartofsystemoperation.Meanwhile,ithasJavacross-platformcharacteristics,andwithlocalizedappearance.
Keywords:
Eclipse,GUIdevelopment,SWTcontrols,tablebrowser
前言
如今,网络应用日新月异,浏览器市场上也有着各具特色的浏览器。
目前市场上份额最高的是微软的IE浏览器,其次是火狐浏览器。
IE浏览器自推出之日起就是免费的,这几乎将收费浏览器置身死地。
因此,是IE浏览器带来了整个互联网的发展。
浏览器发展历程中,有几个主流的浏览器是必定被写进互联网的发展史的。
这些浏览器包括:
Mosaic浏览器、网景浏览器(NetscapeNavigator)、IE浏览器(InternetExplorer)、Opera浏览器、MozillaFirefox浏览器等。
这些浏览器为用户带来了方便快捷的体验,实现了互联网界的繁荣。
此外,还用很多浏览器如:
傲游浏览器、chrome浏览器以及360安全浏览器等。
这些浏览器各具特点,同时,也为不同用户带来了更多的选择。
我们在感谢IE浏览器推动免费浏览器之余,也不得不提到微软的IE与它的界面是绑定的,这使得开机时就必须要运行IE,而IE浏览器又占用了很大的内存,影响其他程序的运行。
以此想法,本论文提出了开发桌面式浏览器的构想,并具体实现了这个构想的部分功能。
希望有一天,会有这样成熟的桌面式浏览器来替代Window的界面和IE。
目录
第一章论文的实现目标
1.1论文的实现目标.................................................5
1.2实现途径.......................................................5
第二章Eclipse平台背景
2.1Eclipse简介.....................................................6
2.2SWT/Jface介绍..................................................6
第三章浏览器开发
3.1开发环境配置..................................................8
3.2重点用到的Java类库............................................9
3.2.1browser类.....................................................9
3.2.2runtime类.....................................................9
3.2.3Image类......................................................10
3.3布局、基本控件与事件处理
3.3.1浏览器布局介绍...............................................11
3.3.2浏览器应用的控件介绍.........................................12
3.3.3浏览器应用中的事件处理.......................................13
第四章论文不足与展望
4.1论文不足.......................................................17
4.2展望...........................................................18
致谢.....................................................19
参考文献.................................................20
附录.....................................................21
第一章论文的实现目标
1.1论文的实现目标
本篇论文,将围绕Eclipse自带的界面开发工具SWT/Jface进行研究和展开。
并以浏览器的开发实例进行介绍。
并对用到的browser类,runtime类等做更为详细的介绍。
这篇论文围绕着桌面浏览器开发的过程中遇到的问题,以及解决方法等进行详细的说明。
同时,会对控件做更深入的学习。
除了实现浏览器的基本功能外,还添加了一些创新之处。
整个开发过程中,学习和实现了很多桌面应用开发的技术,对理论知识有了更感性的认识和理解。
通过浏览器开发的实现过程,对Eclipse平台有了更清晰的认识和立即,为以后的应用的开发,提供了基础。
此外,桌面式浏览器属于本人的对创造个性化浏览器的一个想法,论文中核心的部分就是这个浏览器,开发和调用系统本地程序,这方面,在本篇论文中获得了很好的实现。
1.2实现途径
从Eclipse官方网站上下载3.0以上的版本,本论文中Eclipse版本为3.5。
.对Eclipse进行Java开发的环境配置。
具体搭建信息将会在其他章节做详细介绍。
理论和技术上的问题是通过查找相关的开发书籍,相关文献,Java论坛以及询问导师等,来解决相关问题。
开发中需要的一些icons来自于lotusnote中的Image文件里,以及chrome的一些icon图标。
整篇论文的实现,是在一个JavaProject下创建和开发的,具体的环境配置和所需的.jar包,以及开发中需要的一些插件,会在接下的章节中做更详细的介绍。
第二章Eclipse的平台背景
2.1Eclipse简介
Eclipse最初是IBM公司的一款软件产品。
2001年11月,1.0版本发布时,很不起眼,并广受业界批评。
2003年,当2.1版本发布时,立刻引起轰动。
现在,已经出现了功能强大的且稳定、成熟的3.0以上版本。
Eclipse是一种通用工具平台——普遍适用的开放式可扩展IDE。
它提供了功能丰富的开发环境,该环境允许开发者创建一些能够无缝集成到Eclipse平台中的工具。
Eclipse提供的是一个框架和一组服务,用于通过插件组件构建环境。
它的核心思想是:
一切均为插件。
这些功能插件都能与Eclipse无缝的结合,包括Java开发工具(JavaDevelopmentTools,JDT)、插件开发环境(Plug-inDevelopmentEnvironment,PDE),以及SWTdesigner插件等。
尽管Eclipse是使用Java语言开发的,但它并不限于Java语言,还可应用到如C/C++、COBOL等编程语言中。
Eclipse分为Eclipse平台、JDT、PDE、其他插件几个部分。
其中Eclipse平台是整个系统的核心。
JDT提供了编辑、查看、编译、调试和运行Java代码的专用插件。
PDE构建于Eclipse平台之上,提供了专门开发插件的工具。
构架如图2.1
图2.1Eclipse平台架构
2.2SWT/Jface图形机制介绍
SWT/Jface是Eclipse的图形API包,它和JAVA的AWT/SWING作用是一样的,要在Eclipse上开发插件或是RCP应用,首先必须了解SWT/Jface.
在过去Java桌面主要采用AWT和Swing开发,AWT在GUI方面上很是失败,sun公司采用了新的图形库Swing,Swing消除了操作系统的差异和限制,提供了各种功能丰富的窗口部件。
但是由于不使用操作系统自带的窗口部件,这种方式开发的程序体积庞大,而且运行速度缓慢,十分占用内存。
证实由于AWT/SWING的以上不足,在IBM开发过程中,开发人员决定创建自己的GUI图形库StandardWidgetToolkit(SWT标准小部件箱)。
下面是SWT/Jface和AWT/Swing整体架构设计上的不同。
表2.2AWT/Swing与SWT/Jface的整体设计比较
Swing
Jface
java.awt
SWT
sun.awt
JNI
OperationSystem
WindowingSub-system
OperationSystem
SWT采用与AWT对等的体系结构,直接通过JNI(JavaNativeInterface,Java本地结构),来调用本地操作系统的图形库,但是细节不同于AWT。
在操作系统中找不到需要部件时,SWT就采用模拟的方式绘制部件。
同时SWT提供了可拔插的“lookandfeel”机制,甚至采用了了类似CSS级联样式表的方式修改SWT的外观。
SWT使用布局管理器来布局SWT小部件,Eclipse3.0起,可将AWT/Swing的局面元素加入到SWT的Composite中去,集成更高级的图形功能。
SWT主要目标是提供一个本地操作系统的薄的封装层,它更关注与提供窗体部件,布局和事件处理功能。
Eclipse.org开发的Jface图形库用于提供高层次应用的支持,Jface是基于SWT开发的,它将底层的SWT对象进行了封装,使之更易使用。
SWT/Jface对Eclipse的其余部件没有任何依赖作用,完全可以独立使用。
Eclipse的插件体系,能够很好的集成和开发软件环境。
通过添加各种应用的插件,可以配置不同的插件环境。
如果一个项目中,需要汇编语言,C/C++,Java,SQL等,通过相应的插件都可以进行所需的配置。
实现,多种语言综合开发的多变环境体系。
第三章浏览器开发实例
3.1开发环境配置
本论文实例开发环境是系统Window7,32位;Eclipse版本是3.5;编译执行环境JavaSE-1.6。
.
第一步:
下载并安装JDK和SWT,按照提示一步步进行安装。
第二步:
配置SWT环境,在Eclipse下使用SWT一定要在Eclipse中加入SWT的JAR包,并点击项目右键Properties->JavaBuildPath->Libraries中加入这个JAR包;如图所示
图3.1添加外部JAR包的界面
在文件路径E:
\Eclipse3.5.0forJAVA\plugins下需要加入
这五个JAR包,以上5个必须一个都不少的加进来,否则会出现SWT无法运行或出错的情况。
第三步:
注册DLL文件,在SWT插件目录下有个dll文件,将该文件复制到C:
\Windows\System32下,然后再CMD中运行regsvr32[文件目录]swt-win32-3550.dll,回车后提示注册成功。
安装完成后,可以开始创建SWT程序了。
实例中创建项目:
SWTbrowser;并创建好icons文件夹,将所用的icons加入到该文件夹中。
本实例所用的图标来自于LotusNote中Image文件和Chrome浏览器等图标源文件中。
3.2重点用到的Java类库
3.2.1browser类
1.browser类系谱图
Browser类为Composite类的子类,系谱如图3.2.1-1所示
图3.2.1-1为browser类系谱
2.“浏览器”部件的构造
构造方法
publicBrowser(Compositeparent,intstyle)
构造用法
Browserbrowser=newBrowser(shell,SWT.NONE)
3.browser常用API
1).stop()停止载入当前页。
2).setUrl(Stringurl)装载一个URL。
3).refresh()刷新当前页。
4).back()返回到先前的历史页。
5).forward()返回下一个历史页。
6)isBackEnabled()如果返回true说明back功能可用,否则不可用。
7)isForwardEnabled()如果返回true说明forward功能可用,否则不可用。
3.2.2runtime类
1.概述
Runtime类封装了运行时的环境。
每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。
一般不能实例化一个Runtime对象,应用程序也不能创建自己的Runtime类实例,但可以通过getRuntime方法获取当前Runtime运行时对象的引用。
一旦得到了一个当前的Runtime对象的引用,就可以调用Runtime对象的方法去控制Java虚拟机的状态和行为。
当Applet和其他不被信任的代码调用任何Runtime方法时,常常会引起SecurityException异常。
2.常用API
1).addShutdownHook(Threadhook)注册新的虚拟机来关闭挂钩。
2). availableProcessors()向Java虚拟机返回可用处理器的数目。
3).exec(Stringcommand)在单独的进程中执行指定的字符串命令。
4).exec(String[]cmdarray)在单独的进程中执行指定命令和变量。
5).exec(String[]cmdarray,String[]envp)在指定环境的独立进程中执行指定命令和变量。
6).exec(String[]cmdarray,String[]envp,Filedir)在指定环境和工作目录的独立进程中执行指定的命令和变量。
7).exec(Stringcommand,String[]envp)在指定环境的单独进程中执行指定的字符串命令。
8).exec(Stringcommand,String[]envp,Filedir)在有指定环境和工作目录的独立进程中执行指定的字符串命令。
9).exit(intstatus)通过启动虚拟机的关闭序列,终止当前正在运行的Java虚拟机。
10).freeMemory()返回Java虚拟机中的空闲内存量。
11).gc()运行垃圾回收器。
12).getRuntime()返回与当前Java应用程序相关的运行时对象。
13).halt(intstatus)强行终止目前正在运行的Java虚拟机。
14).load(Stringfilename)加载作为动态库的指定文件名。
15).loadLibrary(Stringlibname)加载具有指定库名的动态库。
16).maxMemory()返回Java虚拟机试图使用的最大内存量。
17).removeShutdownHook(Threadhook)取消注册某个先前已注册的虚拟机关闭挂钩。
18).runFinalization()运行挂起finalization的所有对象的终止方法。
19).totalMemory()返回Java虚拟机中的内存总量。
20).traceInstructions(on)启用/禁用指令跟踪。
21).traceMethodCalls(on)启用/禁用方法调用跟踪。
3.2.3Image类
1.Image类谱系图
Image类在org.eclipse.swt.graphics包中,系谱如图3.2.3-2
图3.2.3-2Image类系谱
2.Image类构造方法
Image类构造方法:
publicImage(Devicedevice,intwidth,intheight)
publicImage(Devicedevice,ImagesrcImage,intflag)
publicImage(Devicedevice,Rectanglebounds)
publicImage(Device,ImageDatadata)
publicImage(Devicedevice,ImageDatasource,ImageDatamask)
publicImage(Devicedevice,InputStreamstream)
publicImage(Devicedevice,Stringfilename)
常用的创建Image对象方法:
Imageimage=newImage(display,”icons/eclipse0.gif”);
Image类是负责与设备相关的图形表示,可以通过制定文件的绝对路径和项目路径或者通过ImageData等多种方法加载图像。
需要注意的是,Image在使用完成好需用dispose()方法进行释放。
3.Image常用的API
1).dispose()释放与Image相关联的操作系统资源。
2).getBackground()获得背景颜色。
3).gerBounds()获得接受者的边框。
4).isDisposed()如果Image被释放,则返回true;否则,返回false。
5)setBackground(Colorcolor)设置背景颜色。
3.3布局、基本控件与事件处理
3.3.1界面布局
1.实例中,浏览器布局采用GridLayout,它的系谱如图
图3.3.1-1GridLayout系谱图
它的构造方法为
PublicGridLayout()
PublicGridLayout(intnumColumns,booleanmakeColumnsEqualWidth)
Cridlayout有很多重要属性,包括numColumns属性用来设置容器的列数目;horizontalSpacing属性用来控制各行组件之间的横向的间距;verticalSpacing属性用来控制各列组件之间的纵向距离。
makeColumnsEqualWidth=true使组件各列等距分开。
marginWidth属性用来控制最左边组件和最右边组件与边框的距离。
marginHeight属性用来控制顶部组件和底部组件与边框的距离。
2.GridData控制布局
使用GridLayout与GridData配合可以对组件复杂布局进行设置。
需要注意的是,GridData的对象只能应用在一个组件上。
如图3.3.1-2为GridData系谱。
图3.3.1-2GridData系谱图
下表是GridData的样式效果
样式
说明
GridData()
组件按照定义好的列数顺序排列
GridData.FILL_HORIZONTAL
水平充满
GridData.FILL_VERTICAL
垂直充满
GridData.FILL_BOTH
垂直和水平两个方向的充满
GridData.HORIZONTAL_ALIGN_BEGINNING
组件左对齐
GridData.HORIZONTAL_ALIGN_CENTER
组件居中
GridData.HORIZONTAL_ALIGN_END
组件对齐
GridData.HORIZONTAL_ALIGN_FILL
组件双向对齐
表3.3.1-2GridData样式效果
3.3.2浏览器应用的控件介绍
SWT有着复杂的组件,这个部分对浏览器开发中用到的空间加以介绍。
1.ToolBar和ToolItem
ToolBar用ToolItem来设定工具栏上的控件,ToolItem可以用文本或图片作按钮。
一般情况下都用setToolTipText(Stringstring)方法设置提示性的文字。
如制作浏览器用到的一些代码
...........................................................................
finalToolBartoolbar=newToolBar(shell,SWT.NONE);
ToolItemitemBack=newToolItem(toolbar,SWT.PUSH);
itemBack.setImage(Back);
itemBack.setToolTipText("Back");
ToolItemitemForward=newToolItem(toolbar,SWT.PUSH);
itemForward.setImage(Forward);
...........................................................................
SWT.PUSH是普通按钮,可以直接引发动作事件,此外还有用到SWT.DROP_DOWN,这种是工具栏上按钮旁带有下拉菜单。
SWT.CHECK样式也有用到,这种样式是工具栏为复选按钮,单击后下陷,再次单击弹起。
最后用到的是SWT.SEPARATOR,此种样式是按钮间的分隔符,没有实质功能。
2.Menu和MenuItem
浏览器制作的程序中,有用到的部分Menu和MenuItem的代码:
...........................................................................
finalMenumenuThemes=newMenu(shell,SWT.PUSH);
MenuItemmenuitemPurple=newMenuItem(menuThemes,SWT.CHECK);
menuitemPurple.setImage(Purple);
menuitemPurple.setText("PurpleTheme");
...........................................................................
创建菜单很繁杂,通常Menu与SWT.Bar配合使用,不过本例中,Menu是作为弹出菜单使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Eclipse 浏览器 制作
![提示](https://static.bdocx.com/images/bang_tan.gif)