




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
34Eclipse浏览器制作 湖南工学院计算机信息管理专业实训项目项目名称: Eclipse浏览器制作 项目组名: 六世烟火 项目组员: 吴金龙(项目经理) 邱彬彬、周伟(文案) 胡智浩(美工) 欧雪虹(程序员) 王子豪(运维) 摘要本篇论文将会在Eclipse平台下做界面开发的研究,并应用SWT的基本控件和事件处理,制作一款桌面式的浏览器。该款浏览器除了实现基本的上网功能外,还可以作为一个用户桌面,实现快捷的浏览和调用应用程序的功能。也能够实现部分系统操作。同时,它具Java有跨操作系统的特性,拥有本地化外观的特点。关键词:Eclipse,界面开发,SWT,桌面浏览器AbstractIn this article well do GUI interface development and research in the Eclipse platform,and using the basic SWT Controls and event handling to make a table style browser.Besides the basic browser functions,it can be used as a user table to realise calling local program and software,and also part of system operation.Meanwhile,it has Java cross-platform characteristics,and with localized appearance.Key words: Eclipse,GUI development, SWT controls, table browser前言如今,网络应用日新月异,浏览器市场上也有着各具特色的浏览器。目前市场上份额最高的是微软的IE浏览器,其次是火狐浏览器。IE浏览器自推出之日起就是免费的,这几乎将收费浏览器置身死地。因此,是IE浏览器带来了整个互联网的发展。浏览器发展历程中,有几个主流的浏览器是必定被写进互联网的发展史的。这些浏览器包括:Mosaic浏览器、网景浏览器(Netscape Navigator)、IE浏览器(Internet Explorer)、Opera浏览器、Mozilla Firefox 浏览器等。这些浏览器为用户带来了方便快捷的体验,实现了互联网界的繁荣。此外,还用很多浏览器如:傲游浏览器、chrome 浏览器 以及360安全浏览器等。这些浏览器各具特点,同时,也为不同用户带来了更多的选择。我们在感谢IE浏览器推动免费浏览器之余,也不得不提到微软的IE与它的界面是绑定的,这使得开机时就必须要运行IE,而IE浏览器又占用了很大的内存,影响其他程序的运行。以此想法,本论文提出了开发桌面式浏览器的构想,并具体实现了这个构想的部分功能。希望有一天,会有这样成熟的桌面式浏览器来替代Window的界面和IE。目录第一章 论文的实现目标1.1论文的实现目标.51.2实现途径.5第二章 Eclipse平台背景2.1Eclipse简介.62.2SWT/Jface介绍.6第三章 浏览器开发3.1开发环境配置. 83.2重点用到的Java类库. 93.2.1browser类.93.2.2runtime类.93.2.3Image类.103.3布局、基本控件与事件处理3.3.1浏览器布局介绍.113.3.2浏览器应用的控件介绍.123.3.3浏览器应用中的事件处理.13第四章论文不足与展望4.1论文不足.174.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图标。整篇论文的实现,是在一个Java Project下创建和开发的,具体的环境配置和所需的.jar包,以及开发中需要的一些插件,会在接下的章节中做更详细的介绍。第二章Eclipse的平台背景2.1Eclipse简介Eclipse最初是IBM公司的一款软件产品。2001年11月,1.0版本发布时,很不起眼,并广受业界批评。2003年,当2.1版本发布时,立刻引起轰动。现在,已经出现了功能强大的且稳定、成熟的3.0以上版本。Eclipse是一种通用工具平台普遍适用的开放式可扩展IDE。它提供了功能丰富的开发环境,该环境允许开发者创建一些能够无缝集成到Eclipse平台中的工具。Eclipse提供的是一个框架和一组服务,用于通过插件组件构建环境。它的核心思想是:一切均为插件。这些功能插件都能与Eclipse无缝的结合,包括Java开发工具(Java Development Tools,JDT)、插件开发环境(Plug-in Development Environment,PDE),以及SWTdesigner插件等。尽管Eclipse是使用Java语言开发的,但它并不限于Java语言,还可应用到如C/C+、COBOL等编程语言中。Eclipse分为Eclipse平台、JDT、PDE、其他插件几个部分。其中Eclipse平台是整个系统的核心。JDT提供了编辑、查看、编译、调试和运行Java代码的专用插件。PDE构建于Eclipse平台之上,提供了专门开发插件的工具。构架如图2.1 图2.1Eclipse平台架构 2.2 SWT/Jface图形机制介绍SWT/Jface是Eclipse的图形API包,它和JAVA的AWT/SWING作用是一样的,要在Eclipse上开发插件或是RCP应用,首先必须了解SWT/Jface.在过去Java桌面主要采用AWT和Swing开发,AWT在GUI方面上很是失败,sun公司采用了新的图形库Swing,Swing消除了操作系统的差异和限制,提供了各种功能丰富的窗口部件。但是由于不使用操作系统自带的窗口部件,这种方式开发的程序体积庞大,而且运行速度缓慢,十分占用内存。证实由于AWT/SWING的以上不足,在IBM开发过程中,开发人员决定创建自己的GUI图形库Standard Widget Toolkit(SWT标准小部件箱)。下面是SWT/Jface和AWT/Swing整体架构设计上的不同。表2.2AWT/Swing与SWT/Jface的整体设计比较SwingJfacejava.awtSWTsun.awtJNIOperation SystemWindowing Sub-systemOperation SystemSWT采用与AWT对等的体系结构,直接通过JNI(Java Native Interface,Java本地结构),来调用本地操作系统的图形库,但是细节不同于AWT。在操作系统中找不到需要部件时,SWT就采用模拟的方式绘制部件。同时SWT提供了可拔插的“look and feel”机制,甚至采用了了类似CSS级联样式表的方式修改SWT的外观。SWT使用布局管理器来布局SWT小部件,Eclipse3.0起,可将AWT/Swing的局面元素加入到SWT的Composite中去,集成更高级的图形功能。SWT主要目标是提供一个本地操作系统的薄的封装层,它更关注与提供窗体部件,布局和事件处理功能。E开发的Jface图形库用于提供高层次应用的支持,Jface是基于SWT开发的,它将底层的SWT对象进行了封装,使之更易使用。SWT/Jface对Eclipse的其余部件没有任何依赖作用,完全可以独立使用。Eclipse的插件体系,能够很好的集成和开发软件环境。通过添加各种应用的插件,可以配置不同的插件环境。如果一个项目中,需要汇编语言,C/C+,Java,SQL等,通过相应的插件都可以进行所需的配置。实现,多种语言综合开发的多变环境体系。第三章浏览器开发实例3.1开发环境配置本论文实例开发环境是系统Window 7, 32位;Eclipse版本是3.5;编译执行环境JavaSE-1.6。.第一步:下载并安装JDK和SWT,按照提示一步步进行安装。第二步:配置SWT环境,在Eclipse下使用SWT一定要在Eclipse中加入SWT的JAR包,并点击项目右键Properties-Java Build Path-Libraries中加入这个JAR包;如图所示图3.1添加外部JAR包的界面在文件路径E:Eclipse 3.5.0 for JAVAplugins下需要加入 这五个JAR包,以上5个必须一个都不少的加进来,否则会出现SWT无法运行或出错的情况。第三步:注册DLL文件,在SWT插件目录下有个dll文件,将该文件复制到C:WindowsSystem32下,然后再CMD中运行regsvr32文件目录swt-win32-3550.dll,回车后提示注册成功。安装完成后,可以开始创建SWT程序了。实例中创建项目:SWT browser;并创建好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.“浏览器”部件的构造构造方法public Browser(Composite parent,int style)构造用法Browser browser =new Browser(shell,SWT.NONE)3.browser常用API1) .stop()停止载入当前页。2).setUrl(String url)装载一个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.常用API1).addShutdownHook(Thread hook)注册新的虚拟机来关闭挂钩。 2).availableProcessors()向 Java 虚拟机返回可用处理器的数目。 3).exec(String command)在单独的进程中执行指定的字符串命令。 4).exec(String cmdarray)在单独的进程中执行指定命令和变量。 5).exec(String cmdarray, String envp) 在指定环境的独立进程中执行指定命令和变量。 6).exec(String cmdarray, String envp, File dir)在指定环境和工作目录的独立进程中执行指定的命令和变量。 7).exec(String command, String envp)在指定环境的单独进程中执行指定的字符串命令。 8).exec(String command, String envp, File dir)在有指定环境和工作目录的独立进程中执行指定的字符串命令。 9).exit(int status)通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。 10).freeMemory()返回 Java 虚拟机中的空闲内存量。 11).gc()运行垃圾回收器。 12).getRuntime()返回与当前 Java 应用程序相关的运行时对象。 13).halt(int status)强行终止目前正在运行的 Java 虚拟机。 14).load(String filename)加载作为动态库的指定文件名。 15).loadLibrary(String libname)加载具有指定库名的动态库。 16).maxMemory()返回 Java 虚拟机试图使用的最大内存量。 17).removeShutdownHook(Thread hook)取消注册某个先前已注册的虚拟机关闭挂钩。 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-2 Image类系谱2.Image类构造方法Image类构造方法:public Image(Device device,int width,int height)public Image(Device device,Image srcImage,int flag)public Image(Device device,Rectangle bounds)public Image(Device,ImageData data)public Image(Device device,ImageData source,ImageData mask)public Image(Device device,InputStream stream)public Image(Device device,String filename)常用的创建Image对象方法:Image image=new Image(display,”icons/eclipse0.gif”);Image类是负责与设备相关的图形表示,可以通过制定文件的绝对路径和项目路径或者通过ImageData等多种方法加载图像。需要注意的是,Image在使用完成好需用dispose()方法进行释放。3.Image常用的API1).dispose()释放与Image相关联的操作系统资源。2).getBackground()获得背景颜色。3).gerBounds()获得接受者的边框。4).isDisposed()如果Image被释放,则返回true;否则,返回false。5)setBackground(Color color)设置背景颜色。3.3布局、基本控件与事件处理3.3.1界面布局1.实例中,浏览器布局采用GridLayout,它的系谱如图图3.3.1-1GridLayout系谱图它的构造方法为Public GridLayout()Public GridLayout(int numColumns,boolean makeColumnsEqualWidth)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和ToolItemToolBar用ToolItem来设定工具栏上的控件,ToolItem可以用文本或图片作按钮。一般情况下都用setToolTipText(String string)方法设置提示性的文字。如制作浏览器用到的一些代码.final ToolBar toolbar = new ToolBar(shell, SWT.NONE);ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);itemBack.setImage(Back);itemBack.setToolTipText(Back);ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);itemForward.setImage(Forward);.SWT.PUSH是普通按钮,可以直接引发动作事件,此外还有用到SWT.DROP_DOWN,这种是工具栏上按钮旁带有下拉菜单。SWT.CHECK样式也有用到,这种样式是工具栏为复选按钮,单击后下陷,再次单击弹起。最后用到的是SWT.SEPARATOR,此种样式是按钮间的分隔符,没有实质功能。2. Menu和MenuItem浏览器制作的程序中,有用到的部分Menu和MenuItem的代码:.final Menu menuThemes = new Menu(shell, SWT.PUSH);MenuItem menuitemPurple = new MenuItem(menuThemes, SWT.CHECK);menuitemPurple.setImage(Purple);menuitemPurple.setText(Purple Theme);.创建菜单很繁杂,通常Menu与SWT.Bar配合使用,不过本例中,Menu是作为弹出菜单使用。其MenuItem的使用与ToolItem相同,这里不再赘述。3. 进度条ProgressBar作为浏览器的一部分,进度条的应用显得非常关键,浏览器开发创建progressBar的代码如下:.final ProgressBar progressBar = new ProgressBar(shell, SWT.NONE);data = new GridData();data.horizontalAlignment = GridData.END;progressBar.setLayoutData(data);.进度条ProgressBar的构造用法:ProgressBar progressbar =new ProgressBar(shell,SWT.NONE),它有SWT.SMOOTH、SWT.HORIZONTAL、SWT.VERTICAL、SWT.INDETERMINATE种样式。进度条的事件处理将在下一部分说明。此外,还有用到一些Text,Label等,这些应用简单,不多做介绍了。3.3.3浏览器应用中的事件处理1.browser类的监听与事件处理下面是应用程序浏览时用到的一段代码:.Listener listener = new Listener() public void handleEvent(Event event) ToolItem item = (ToolItem) event.widget;String string = item.getToolTipText();if (string.equals(Back)browser.back();else if (string.equals(Forward)browser.forward();.ItemBack.addListener(SWT.SELECTION,listener);.上面截取的这段程序,是浏览器用来处理事件的后退,前进以及刷新等功能的代码。这些没有太大难度,就能实现浏览器的基本功能。2.打开文件对话框的事件处理下面这段代码是用来打开本地文件的事件处理的核心程序:.FileDialog OpenFileDialog = new FileDialog(shell, SWT.OPEN);OpenFileDialog.setText(Open files Dialog);OpenFileDialog.setFilterExtensions(new String *.*,*.doc, *.jpg, *.txt, *.exe );OpenFileDialog.setFilterNames(new String All types(*.*),Word(*.doc), Image(*.jpg), Note(*.txt),Execute(*.exe) );OpenFileDialog.setFilterPath(C:);OpenFileDialog.open();.首先,创建一个文件打开对话框的对象,设置初始路径以及文件格式等。3.弹出下拉菜单的事件处理弹出菜单事件处理的核心代码如下:.Rectangle bound = itemMail.getBounds();Point point = toolbar.toDisplay(bound.x, bound.y + bound.height);menuMail.setLocation(point);menuMail.setVisible(true);.这段功能是将创建的Menu定位到ItemMail下边,这样,单级邮箱图标时就会弹出该菜单。4. 打开本地应用程序的事件处理打开本地应用程序的事件处理主要用到了runtime类,其核心代码如下:.String cmd = C:Program FilesFoxit SoftwareFoxit ReaderFoxit Reader.exe;try Runtime.getRuntime().exec(cmd); catch (IOException e) e.printStackTrace();.这段程序是打开PDF的事件处理,应用了Runtime类的getRuntime() API,执行了cmd的路径,打开应用程序。同时应用了一对try.catch.来捕捉IO异常。5. Help的事件处理开发中,将HELP用消息对话框来给用户提示,器部分程序如下:.MessageBox messagebox = new MessageBox(shell, SWT.ICON_QUESTION| SWT.YES);messagebox.setText(Help center);messagebox.setMessage(.);int message = messagebox.open();event.doit = message = SWT.YES;.该事件弹出一个消息对话框,给用户提示,消息对话框中显示SetMessage中的文字。6. ProgressBar的事件处理进度条的事件处理核心代码如下:.browser.addProgressListener(new ProgressListener() public void changed(ProgressEvent event) if (event.total = 0)return;int ratio = event.current * 100 / event.total;progressBar.setSelection(ratio);public void completed(ProgressEvent event) progressBar.setSelection(0););.该事件用来处理进度条虽页面加载进度而显示的过程。 上述为浏览器开发中,所需的事件处理。每个事件处理的核心代码,都是浏览器事件相应的关键。第四章 论文不足与展望4.1论文不足本论文开发的浏览器,外观如图:图4.1-1浏览器界面图这款浏览器,只能实现单线程的上网任务,在支持插件上还要很多改进。作为一款入门级浏览器,它存在着很多不足,在未来设计中,会逐步改进为一个能够支持视频,多线程,并且跨平台应用更广的桌面式浏览器。这款浏览器,将会随着Eclipse设计的深入,添加更多插件,使它可以完成系统的大部分操作,如实现关机,重启,待机等系统任务。并且,是它更具本地化和个性化,能够根据用户需要更加自由的设置。实现个性桌面与个性浏览器的整合。这款桌面式浏览器距离完全代替桌面还有很长的路。在后续开发中,会更关注浏览器的布局和外观设计,希望有一天能够创造出成熟的浏览器,来推广这种将桌面集成到浏览器的思想。论文中关于Eclipse插件的开发和RCP应用等,没有多做介绍,这源于RCP开发具有较高的学习曲线。而作为插件和RCP开发的基础,学习并掌握SWT/Jface显得尤为关键,所以,本篇论文详细介绍了一些代表性的控件和事件处理。掌握这些应用,在Eclipse平台下做界面开发将会更加得心应手。4.2展望浏览器进入了“战国时代”,即便IE9的推出也无法阻挡整体的下滑趋势,Firefox进入稳定发展期,未来还取决于Mozilla的市场策略;Chrome迅速崛起,掀起了全球Webkit新潮流。未来浏览器的发展趋势如下:1. 兼容性是核心全球占主导地位的五大浏览器分别是IE、Firefox、Chrome、Safari和Opera,它们使用的渲染引擎即通常所说的内核分别是Trident、Gecko、Webkit和Presto。在速度上Webkit最快,Presto第二,Gecko第三,Trident最差;兼容性上,Trident是第一位,Gecko其次,Webkit差不多,Presto最后。Webkit和Presto的开源也是相对于Trident的优势所在。用于历史原因,IE拥有着网站兼容性优势。Webkit最快,因此Chrome迅速崛起。2. 双核浏览器双核浏览器是解决国内兼容性问题的一种解决方案,特别是面对现在网银等支付平台时,双核浏览器的出现会带来更多的选择和用户体验。3. Web应用时代未来的本地应用将会越来越薄,Web应用越来越丰富,浏览器将告别传统的运行方式,变得越来越重要,用户体验会随之提高。未来浏览器就是要提供便捷的一站式Web服务,浏览器将会成为多有平台的基础。浏览器将会是“云”面向用户的业务平台和入口,未来网络的带宽越来越大,浏览器支持的标准越来越多,展现的内容当然越来越丰富。致谢感谢陆海胡导师,对我整体论文的指导和技术支持,谢谢你的耐心和花费在上面的时间。同样,感谢教务的信息提供和通知。以及,学习应用数学与应用软件的老师们,你们对我在数学上的启迪和对软件上的教导,让我在今后的学习和工作中受益匪浅。感谢这门专业,它陪伴我的四年时间让我觉得丰富和充实,让我养成了理性的思维逻辑,并获得了很多终身受益的技能。参考文献1 王津涛,孟庆昌.Eclipse SWT/JfaceM.北京:人民邮电出版社,2007.6.2 燕孝飞,张伟,吕加国,王艳秋.完全掌握Eclipse 项目开发实战M.北京:北京科海电子出版社,2009.8.3 陈刚.Eclipse从入门到精通M.北京:清华大学出版社,2005.6.4 张鹏,姜昊,许力.Eclipse插件开发学习笔记M.北京:电子工业出版社,2008.7.5 袁赟.Eclipse RCP框架分析与应用研究D.上海:同济大学计算机科学与技术专业,2007.12.6 南方.基于Eclipse的嵌入式集成开发环境D.四川:西安电子科技大学软件工程专业,2009.06.7 占春丽.Eclipse菜单实现的研究J.福建电脑2008,第6期.8 魏楚元,李陶深,张增芳.Eclipse:基于插件的下一代通用集成开发环境J.计算机应用与软件,第22卷第6期.9林金晓,陈伟男,周学功,吴荣泉.基于Eclipse平台的边界扫描测试软件的开发J.计算机工程.第33卷第12期.10李楠.基于Eclipse的uDig插件的设计与实现J.计算机与现代化.2010年第二期.11吴成燕,沈婕,吴佳.基于Eclipse的移动客户端地图浏览软件开发J.地球信息科学,第10卷,第2期.12 David Geer.Eclipse becomes the dominant JavaIDEJ.Industry trends.July 2005.13Ming-Yang(Jerry)Lin,Robert Amor,Ewan Tempero. A Java reuse Repository for EclipseJ.New Zealand:University of Auckland Department of Computer Science.1530-0830/06.2006 IEEE.14 Francesca Arcelli,Claudia Raibulet,Lvano Rigo,Luigi Ubezio.An Eclipse Plug-in for the Java PathFinder Runtime Verification SystemJ.Milan,Italy 0-7695-2624-1/06.2006 IEEE.附录程序代码:package browserPackage;import java.io.IOException;import org.eclipse.swt.SWT;import org.eclipse.swt.browser.Browser;import org.eclipse.swt.browser.LocationEvent;import org.eclipse.swt.browser.LocationListener;import org.eclipse.swt.browser.ProgressEvent;import org.eclipse.swt.browser.ProgressListener;import org.eclipse.swt.browser.StatusTextEvent;import org.eclipse.swt.browser.StatusTextListener;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.graphics.Color;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.graphics.Point;import org.eclipse.swt.graphics.Rectangle;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.layout.GridLayout;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Event;import org.eclipse.swt.widgets.FileDialog;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.widgets.Listener;import org.eclipse.swt.widgets.Menu;import org.eclipse.swt.widgets.MenuItem;import org.eclipse.swt.widgets.MessageBox;import org.eclipse.swt.widgets.ProgressBar;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.widgets.Text;import org.eclipse.swt.widgets.ToolBar;import org.ec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化场馆建设2025:社会稳定风险评估与风险管控策略报告
- 安全知识综合试题及答案
- 安全施工方案题库及答案
- 安全生产检查试题及答案
- 母婴产品市场2025年消费升级趋势下品牌竞争策略创新研究报告
- 盐湖提锂2025年成本控制与产能提升产业生态研究报告
- 跨境支付行业2025年区块链技术跨境支付跨境支付技术市场分析报告
- 物业楼宇管家培训课件
- 社区面试技巧培训课件
- 培训课件音乐背景
- 护士职业精神课件
- 2020年沈阳职业院校技能大赛中职学生组职业英语(服务类)样题
- 生物学基本知识
- 农业科技产业园发展战略规划与实施路径
- 2025年养老护理员(中级)考试试卷:实操技能解析
- 体育服务综合体建设项目可行性分析 (一)
- GB 45671-2025建筑防水涂料安全技术规范
- 广东深圳2025年公开招聘农村党务(村务)工作者笔试题带答案分析
- 2025-2030中国灭草松原药行业市场现状分析及竞争格局与投资发展研究报告
- 农村自建房业主培训课件
- 现场7S管理培训
评论
0/150
提交评论