基于Java的浏览器的设计与实现.doc
《基于Java的浏览器的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Java的浏览器的设计与实现.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于Java的浏览器的设计与实现摘 要 本课程设计主要运用java语言在Eclipse编程环境下设计一个Web浏览器,从而在Windows 98/2000/XP程序运行平台上来实现它的一些基本功能,本课程设计基本实现了预定目标。浏览器的设计包括了图形界面设计和底层设计,在整个设计过程中需要首先构建好图形界面,然后再编程来实现组件以完成相应的功能,浏览器图形界面作为系统和用户之间反馈信息的平台,起着尤为关键的作用。1 引 言当今世界是一个以计算机网络为核心的信息时代,互联网为人们快速获取、发布和传递信息提供了便捷,而浏览器作为互联网上查找信息的重要工具,给人们提供了巨大而又宝贵了信息财富,受到了
2、大家的高度重视。网页浏览器是显示网页服务器或档案系统内的文件,并让用户与这些文件互动的一种软件。它用来显示在万维网或局域网内的文字、影像及其他资讯。浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。1.1 项目设计目的此次课程设计的目的首先是让我们了解信息产业的多元性,把学到的知识运用到实际中,培养学生的综合模拟和实际操作能力,提高学生理论联系实际的能力,开拓创新;其次是掌握使用Eclipse工具设计一个
3、简单的Web浏览器的方法,从而实现对资源的有效访问;掌握Java语言编程,并可综合运用这些知识解决一定的实际问题,使我们在所学知识的综合运用能力上以及分析问题、解决问题能力上得到一定的提高;认识到团队精神的重要性,能够通过良好的分工合作来完成既定目标。 1.2 项目设计内容(1)熟悉超文本传送协议(HTTP)进行通信;(2)熟悉Eclipse编程环境及Swing、网络编程方法;(3)理解B/S工作模式;(4)实现简单的浏览器程序;1.3 项目设计要求(1)按要求编写课程设计报告书,能正确阐述设计结果。(2)通过课程设计培养学生严谨的科学态度、认真的工作作风和团队协作精神。(3)学会文献检索的基
4、本方法和综合运用文献的能力。(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。2所用开发环境Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插
5、件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用于Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。12.2 JDK简介 JDK(Java Development Kit)是Sun Microsystems针对Ja
6、va开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Environment),Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK。JDK包含的基本组件包括:javac 编译器,将源程序转成字节码 jar 打包工具,将相关的类文件打包成一个文件 javadoc 文档生成器,从源码注释中提取文档 jdb d
7、ebugger,查错工具 java 运行编译后的java程序(.class后缀的) appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。 Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具3设计原理3.1 JAVA语言简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的
8、HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行
9、。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。Java主要特性:Java语言是简单的、面向对象的、分布式的、健壮的、安全的、体系结构中立的、可移植的、解释型的、高性能的、多线程的、动态的。3.2 图形用户界面(GUI)图
10、形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户介面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。如Windows是以图形界面方式操作的,因为你可以用鼠标来点击按钮来进行操作,很直观。GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。GUI由桌面、视窗、单一文件界面、多文件界面、标签、菜单、图标、按钮这几部分组成。23.3 Java Swing概述Swing是一个用于开发Java应用程序用户界面的开发工具包,并以此为基础使跨平台应用程序可以
11、使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。Swing是建立在AWT之上的,包括大多数轻量组件的组件集。除提供了AWT所缺少的、大量的附加组件外,Swing还提供了替代AWT重量组件的轻量组件。Swing还包括了一个使人印象深刻的、用于实现包含插入式界面样式等特性的图形用户界面的下层构件。因此,在不同的平台上,Swing组件都能保持组件的界面样式特性,如双缓冲、调试图形和文本编辑包等。还具有以下特点: (1)拥有一个丰富、便捷的用户界面元素集合。 (2)对底层平台依赖的很少,因此与平台相关的bug很少。 (3)
12、给予不同平台的用户一致的感官效果。3.4抽象窗口工具箱(AWT)AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统, 图形和用户界面器件工具包。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标
13、准API。AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。3.5布局算法本文中的布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和界面输出。布局算法的好坏直接关系到界面的输出效果,但布局算法也是要根据GUI所能实现的输出效果来设计的,所以,GUI往往成为系统的瓶颈,如果GUI提供的支持有限,即使有再好的布局算法,也是纸上谈兵,无用武之
14、地。在Swing中有以下几种简单的布局管理器:(1)FlowLayout流式布局管理器FlowLayout是最简单的布局管理器,按照组件的添加次序将它们从左到右地放置在容器中。当到达容器边界时,组件将放置在下一行中。(2)BorderLayout边界布局管理器BorderLayout为在容器中放置组件提供了一个稍微复杂的布局方案。BorderLayout把容器分为五个区域:东、南、西、北和中。东占据容器的右侧,南占据容器的下侧,以此类推。(3)GridLayout网格布局管理器GridLayout将容器分割成许多列和行,组件被填充到每个网格中。添加到容器中的组件首先放置在左上角的网格中,然后从
15、左到右放置其他组件,直至占满该行的所有网格,接着继续在下一行中从左到右放置组件。(4)CardLayout卡片式布局管理器CardLayout将界面看作一系列的卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。当某个容器被创建后,就会有一个默认的布局管理器。Window、Frame和Dialog的默认布局管理器是BorderLayout,Panel和Applet的默认布局管理器是FlowLayout。可以调用容器的setLayout()方法来设置容器的布局管理器。34 浏览器的设计4.1功能需求的分析我们所设计的浏览器功能比较简单,主要概括为以下几点:(1) 界面:包括窗口
16、,菜单,输入框,工具条,滚动条等的支持。(2) 实现简单网页的布局,对简单网页的查看。(3)具有超链接功能。(4) 能够返回到主页面。(5) 支持基本IO(Input/Output,输入/输出)。(6)能够打开本地文件。4.2设计步骤我在整个团队中主要负责界面的设置,界面是一个直接反映信息交互的平台,起着举足轻重的作用,在这里我就怎样构建用户界面作为重点进行阐述。1.容器嵌套选择好容器就是为界面构造一个基本的骨架,然后再在其中添加各个组件。在GUI中可供选择的容器有Frame, Dialog, Applet, Panel,其中Panel是可视容器,Frame是顶级容器。我们要用Panel和Fr
17、ame容器。继承顶级容器的方法、功能和参数,将菜单栏置于顶级容器;在次级容器contentpan中加入了工具栏、状态栏、滚动条、编辑区域等,然后用边界布局管理器将所需的组件添加进来,具体所需组件如下表所示:表4-1 组件复用表功能所复用的组件菜单复用JMenu组件菜单项复用JMenuItem组件工具栏复用JPanel组件按钮复用JButton组件地址栏复用JLabel组件状态栏复用JPanel组件滚动条复用scrollPane组件2.组件定义 与其他编程语言类似,在JAVA中也必须首先对变量以及所要用到的组件定义,确定其合法性,才能在后面的程序中被调用赋值。定义代码如下:private Con
18、tainer contentPane; /变量内容窗格 private JTextField addressTex; /文本框private JLabel statusLbl; /状态栏用private分别对滚动条、编辑显示区域、菜单栏、文件选择框、按钮等进行定义。3.组件初始化、添加和监听mb=new JMenuBar(); / 初始化菜单栏m1=new JMenu(File); / 初始化菜单m2=new JMenu(Edit);m3=new JMenu(View);mb.add(m1); / 将菜单加入菜单栏mb.add(m2);mb.add(m3);/对File菜单各个菜单项初始化mi
19、1=new JMenuItem(Open File);mi2=new JMenuItem(Close);mi3=new JMenuItem(Quit);Edit、View菜单的各个菜单项进行初始化过程与之类似/对File菜单各个菜单项进行监听mi1.addActionListener(new OpenFileActionListener();mi2.addActionListener(new QuitActionListener();mi3.addActionListener(new QuitActionListener();4设置布局 pp.setBackground(Color.pink)
20、; / 设置颜色pp.setLayout(new FlowLayout(); / 流式布局管理器,对组件由左至右布局pp.add(btn2); /对按钮UNDO布局pp.add(addressTex); /对地址栏布局pp.add(btn1); /对按钮GOTO布局contentPane.add(pp,BorderLayout.NORTH); /将工具栏放置在界面的北方 contentPane.add(statusLbl,BorderLayout.SOUTH);/状态栏布置在界面的南边 centerPane = new JScrollPane(); / 浏览器体部布置在界面中央JViewpor
21、t view = centerPane.getViewport(); / 显示区域textArea = new JEditorPane(); / 内容显示5. 按钮功能的实现每个按钮需要对应到相应的功能。我们设计的浏览器只有UNDO和GOTO两个按钮。UNDO对应浏览页面的后退浏览,实现这个功能是在监听到用户点击此按钮时后退到上一浏览页面。而GOTO就是当系统监听到地址栏有地址写入时,浏览器先判断这个地址长度是否大于零并且此地址是不是以HTTP开头,如果是,则浏览器主动链接到目的地址;若判断出这个地址长度大于零并且此地址不是以HTTP开头,则在地址前面自动加上HTTP,找到目的地址。5 浏览器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 浏览器 设计 实现
限制150内