java浏览器课程设计.docx
- 文档编号:2571989
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:47
- 大小:157.64KB
java浏览器课程设计.docx
《java浏览器课程设计.docx》由会员分享,可在线阅读,更多相关《java浏览器课程设计.docx(47页珍藏版)》请在冰点文库上搜索。
java浏览器课程设计
重庆大学计算机系
课程设计报告
课程名称
:
Java程序设计
课程代码
:
题目
:
WEB浏览器开发
年级/专业/班
:
计算机01班
学生姓名
:
学号
:
指导老师
:
开题时间
:
2012年12月15日
完成时间
:
2013年01月03日
2012年元12月15日
课程设计任务书及成绩评定
课程名称
:
Java程序设计
完成者
:
1、设计的目的与要求
本课程设计需要学生运用面向对象编程和网络编程方法等,建立模型,最后设计出一个简单的网页浏览器,使该浏览器具有打开内容简单的网页,以及将网页另存,网页前进和后退,并且能够查看所浏览网页的源代码。
摘要
本设计可以帮助同学掌握和应运所学的面向对象程序设计网页编程内容,培养同学们建立对象模型,处理对象和对象集关系和对网络编程的能力,训练同学为解决实际问题而创建较完整的简单面向对象和网络编程应运程序的独立编程能力.
本设计是一个常见的网页浏览器应运程序.
系统实现的功能:
●打开url链接相关的网页;将网页另存为到硬盘上;网页前进;网页后退;查看网页源代码.
同时此浏览器所占内存空间小,对于硬件的要求低,对于经常上网查资料的用户来说是一个不错的选择。
关键词:
网页浏览器;网页;java
WEB浏览器开发
1引言
本课题的题目是:
用简单的java编程编写一个简单的网页浏览器。
.
这是一个常见的网页浏览器应运程序.有以下学习要点:
●面向对象设计的方法
●网络编程编写的方法
●GUI图形界面的设计方法和Swing相关组建的灵活运用
●熟练事件处理机制
●熟悉掌握输入输出流
2设计任务与目的
随着科学技术的发展,我们已进入信息化时代,互联网在全球的应用越来越广泛,它已深入到我们学习生活的各个方面。
为了适应时代的发展,本次课程设计的主要任务是制作一个网页浏览器并完成一些基本操作。
其目的是:
(1)运用已学的java知识编一些简单使用的程序,通过本课程设计使我们加深理解、巩固课堂理论知识和实验知识;
(2)使我们初步具备综合运用所学Java语言基础知识,面向对象程序设计的基本思想、方法与技术,网络通信编程技术和数据库编程技术等开发简单应用系统的基本能力;
(3)使理论和实际相结合,真正做到学以致用,并适应时代发展的潮流。
3需求分析
此网页浏览器的主要功能描述:
通过在地址栏里面输入URL地址,可以访问相应的网页。
除此之外,本案例中的网页浏览器还增添了如下几个功能。
1.另存为:
可以将正在访问的页面进行保存。
2.前进:
访问现有页面的上一个页面。
3.后退:
访问现有页面的下一个页面。
4.查看源文件:
查看访问页面的HTML源文件,并且提供保存功能。
4系统设计
4.1总体设计
网页浏览器的程序由文件WebBrowser.java与ViewSourceFrame.java两个文件组成。
4.1.1WebBrowser.java
包含名为WebBrowser的public类,其主要功能为生成网页浏览器的主体框架,实现框架上各个组件的事件侦听。
主要包括4个模块:
图形用户界面的构建:
组件监听接口的实现:
文件保存功能的实现:
查看源代码框架的生成。
4.1.2ViewSourceFrame.java
包含名为ViewSourceFrame的类,其主要功能是实现了源文件查看的主体框架,并实现了源文件的保存功能。
主要包括两个模块:
图形用户界面的构建:
组件监听接口的实现。
4.2用例图与类图
4.2.1用例图
4.2.1用例图
4.2.2系统类图
4.2.2系统类图
5系统实现
5.1主要功能运行效果
1.输入url:
单击转向或回车,进入网页页面;
图5.1.1
2.点击界面的另存为,课将网页存储于计算机上,如图5.1.2
图5.1.2
3.进入网页之后,点击界面的源代码按钮,即可查看该网页的源代码,如图5.1.3;
图5.1.3
5.2系统运行和发布
要发布这个应用程序,就应该将应用程序打包。
使用jar.exe,可以把应用程序中涉及到的类和图片压缩成一个jar文件,这样便可以发布程序。
首先编写一个清单文件,名为MANIFEST.MF,其代码如下:
Mainfest-version:
1.0
Created-by:
1.5.0_02(SunMicrosystemsInc.)
Main-Class:
WebBrowser
此清单文件保存到C:
\Javawork\CH04.
然后,使用如下命令生成jar文件:
JarcfmWebBrowser.jarMANIFEST.MF*.class
其中参数c表示要生成一个新的jar文件:
f表示要僧成的jar文件的名字:
m表示清单文件的名字
如果机器安装过WinRAR解压缩软件,并将jar文件与该解压缩软件做了关联,那么WebBrow.jar文件的类型是WinRAR,使得java程序无法运行。
因此,在发布软件时,还应该再写一个有如下内容的bat文件(WebBrowser.bat):
Javaw-jarWebBrowser.jar
可以通过双击WebBrowser.bat来运行程序。
6结束语
刚听到课程设计时,就有一种畏难心理。
我们现在所学的java知识九牛一毛,要编写一个几百甚至上千行的代码似乎不可能。
但是当我们上网查找过只是一些资料后,许多题目都是由学生在老师的指导下做出来的,一些还有源代码。
世上无难事,只怕有心人。
于是我们全组的人开始分工合作,大家先一起搜索一些资料,然后根据各自负责的部分有目的地筛选。
虽然我们天天在浏览网页,但是以前从没想过为什么输入一个网址就可以找到所需要的信息。
通过此次网页浏览器的设计,使我们对网页有了更深层次的了解。
不过也存在一些问题,在实现对网址的保存和当前页面的前进和后退功能后,应该可以新增一些新的功能,例如在当前的页面再次点击进入其他页.、刷新当前页面等等,“书山有路勤为径,学海无涯苦作舟”,我们现今所学的知识还远远不够,在今后的学习过程中我们要进一步学习java的更多的知识,此次课程设计不仅锻炼了我们独立思考和团队合作的能力,而且提高了我们动手的能力。
参考文献
[1]张广彬,孟红蕊,张永宝.Java课程设计案例精编[M].北京:
清华大学出社,2007,1.
[2]黄晓东.Java课程设计案例精编[M].北京:
中国水利水电出版社,2004,5.
[3]求是科技.Java信息管理系统开发实例导航[M].北京:
人民邮电出版社,2005,4.
[4]求是科技.Java数据库系统开发实例导航[M].北京:
人民邮电出版社,2004,9.
[5]李芝兴.Java程序设计之网络编程[M].北京:
清华大学出版社,2006,3.
[6]刘艺,吴英.Java程序设计大学教程[M].北京:
机械工业出版社,2006,2
致谢
在本次程序设计过程中,**老师给予了我们极大的支持与指导,在此表示感谢!
同时也感谢给予我们建议和意见的同学们!
源代码:
importjava.awt.datatransfer.Clipboard;
importjava.awt.datatransfer.DataFlavor;
importjava.awt.datatransfer.Transferable;
importjava.awt.event.MouseListener;
importjava.awt.*;
importjavax.swing.*;
importjavax.swing.text.*;
importjava.awt.event.*;
importjavax.swing.event.*;
importjavax.swing.border.*;
importjavax.swing.filechooser.FileFilter;
importjavax.swing.filechooser.FileView;
importjava.io.*;
import.*;
importjava.util.*;
publicclassWebBrowserextendsJFrameimplementsHyperlinkListener,ActionListener{
/**
*CreatesanewinstanceofWebBrowser
.
*/
//.......
//.........
//建立主件
JToolBarbar=newJToolBar();//工具栏
JTextFieldjurl=newJTextField(60);//地址栏
JEditorPane2jEditorPane1=newJEditorPane2();//网页框
JScrollPanescrollPane=newJScrollPane(jEditorPane1);//滚动条
JFileChooserchooser=newJFileChooser();
JFileChooserchooser1=newJFileChooser();//选择文件
StringhtmlSource;
JWindowwindow=newJWindow(WebBrowser.this);//使用指定的所有者框架创建窗口
JButtonbutton2=newJButton("窗口还原");
Toolkittoolkit=Toolkit.getDefaultToolkit();//获取默认工具包
JMenuBarjMenuBar1=newJMenuBar();//建立菜单栏
JMenufileMenu=newJMenu("文件(F)");//建立菜单组
JMenuItemsaveAsItem=newJMenuItem("另存为(S)");
JMenuItemexitItem=newJMenuItem("退出(E)");
JMenueditMenu=newJMenu("编辑(E)");//建立菜单组
JMenuItembackItem=newJMenuItem("后退(Z)");
JMenuItemforwardItem=newJMenuItem("前进(P)");
JMenuviewMenu=newJMenu("视图(V)");//建立菜单组
JMenuItemfullscreenItem=newJMenuItem("全屏(U)");
JMenuItemsourceItem=newJMenuItem("查看源代码(C)");
JMenuItemreloadItem=newJMenuItem("刷新(R)");
JToolBartoolBar=newJToolBar();
JButtonpicSave=newJButton("另存为");
JButtonpicBack=newJButton("后退");
JButtonpicForward=newJButton("前进");
JButtonpicView=newJButton("查看源代码");
JButtonpicExit=newJButton("退出");
//建立工具栏
JLabellabel=newJLabel("地址");
JButtonbutton=newJButton("转向");
Boxadress=Box.createHorizontalBox();//创建一个从左到右显示其组件
BoxadressSource=Box.createHorizontalBox();
privateArrayListhistory=newArrayList();
privateinthistoryIndex;
publicWebBrowser(){
setTitle("网页浏览器");
setResizable(false);//设置此frame是否可由用户调整大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jEditorPane1.addHyperlinkListener(this);//事件监听
fileMenu.setMnemonic('F');
saveAsItem.setMnemonic('S');
saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
exitItem.setMnemonic('P');
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
//设置热键
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
backItem.setMnemonic('B');
backItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
forwardItem.setMnemonic('D');
forwardItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
editMenu.setMnemonic('E');
editMenu.add(backItem);
editMenu.addSeparator();
editMenu.add(forwardItem);
viewMenu.setMnemonic('V');
fullscreenItem.setMnemonic('U');
fullscreenItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
sourceItem.setMnemonic('C');
sourceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
reloadItem.setMnemonic('R');
reloadItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
ContainercontentPane=getContentPane();
scrollPane.setPreferredSize(newDimension(100,500));
contentPane.add(scrollPane,BorderLayout.SOUTH);
toolBar.add(picSave);
toolBar.addSeparator();
toolBar.add(picBack);
toolBar.addSeparator();
toolBar.add(picForward);
toolBar.addSeparator();
toolBar.add(picView);
toolBar.addSeparator();
toolBar.add(picExit);
toolBar.addSeparator();
toolBar.add(picExit);
toolBar.addSeparator();
toolBar.add(adressSource);
contentPane.add(bar,BorderLayout.CENTER);
contentPane.add(toolBar,BorderLayout.NORTH);
viewMenu.add(fullscreenItem);
viewMenu.addSeparator();
viewMenu.add(sourceItem);
viewMenu.addSeparator();
viewMenu.add(reloadItem);
jMenuBar1.add(fileMenu);
jMenuBar1.add(editMenu);
jMenuBar1.add(viewMenu);
setJMenuBar(jMenuBar1);
adress.add(label);
adress.add(jurl);
adress.add(button);
bar.add(adress);
saveAsItem.addActionListener(this);
picSave.addActionListener(this);
exitItem.addActionListener(this);
picExit.addActionListener(this);
backItem.addActionListener(this);
picBack.addActionListener(this);
forwardItem.addActionListener(this);
picForward.addActionListener(this);
fullscreenItem.addActionListener(this);
sourceItem.addActionListener(this);
picView.addActionListener(this);
reloadItem.addActionListener(this);
button.addActionListener(this);
jurl.addActionListener(this);
}
//..................
//.....
publicvoidactionPerformed(ActionEvente)
{
Stringurl="";
if(e.getSource()==button){//按down.................................................
url=jurl.getText();
if(url.length()>0&&url.startsWith("http:
//")){
try{
jEditorPane1.setPage(url);
history.add(url);
historyIndex=history.size()-1;//返回此列表中的元素数
jEditorPane1.setEditable(false);
jEditorPane1.revalidate();
}
catch(Exceptionex){
JOptionPane.showMessageDialog(WebBrowser.this,"不能打开网页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
elseif(url.length()>0&&!
url.startsWith("http:
//")){
url="http:
//"+url;
try{
jEditorPane1.setPage(url);
history.add(url);
historyIndex=history.size()-1;//返回此列表中的元素数
jEditorPane1.setEditable(false);
jEditorPane1.revalidate();
}
catch(Exceptionex){
JOptionPane.showMessageDialog(WebBrowser.this,"不能打开网页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
elseif(url.length()==0){
JOptionPane.showMessageDialog(WebBrowser.this,"不能打开网页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
//............按回车
elseif(e.getSource()==jurl){
url=jurl.getText();
if(url.length()>0&&url.startsWith("http:
//")){
try{
jEditorPane1.setPage(url);
history.add(url);
historyIndex=history.size()-1;//返回此列表中的元素数
jEditorPane1.setEditable(false);
jEditorPane1.revalidate();
jurl.setMaximumSize(jurl.getPreferredSize());
}
catch(Exceptionex){
JOptionPane.showMessageDialog(WebBrowser.this,"不能打开网页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
elseif(url.length()>0&&!
url.startsWith("http:
//")){
url="http:
//"+url;
try{
jEditorPane1.setPage(url);
history.add(url);
historyIndex=history.size()-1;//返回此列表中的元素数
jEditorPane1.setEditable(false);
jEditorPane1.revalidate();
}
catch(Exceptionex){
JOptionPane.showMessageDialog(WebBrowser.this,"不能打开网页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 浏览器 课程设计