简易浏览器设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
目录 (1)
一、课程设计的目的与要求 (2)
二、题目说明 (2)
2.1程序开发背景................................................................... 错误!未定义书签。
2.2开发工具介绍 (2)
三、总体设计 (2)
3.1.系统开发平台: (2)
这个简易浏览器由Java语言编写,用Eclipse编译执行 (2)
3.2.系统流程图: (3)
3.3功能结构图: (3)
四、详细说明 (4)
4.1 系统实施 (4)
五、遇到的问题和解决方法 (9)
六、课程设计总结 (10)
一、课程设计的目的与要求
加深学生对面向对象概念以及JAVA面向对象程序设计思想的理解和掌握;使学生熟悉开发一个项目的基本过程,培养学生分析问题和解决问题的能力,增强学生的动手能力。为后续学习和应用打下一定的基础。
二、题目说明
本程序实现一个简单的浏览器。用户通过在URL输入框中输入要下载的网络页面的网址,并点击浏览器界面上相应的按钮,或直接按回车键,就能完成网络页面下载的功能。同时,它还支持浏览本地HTML文件,用户在输入框中输入文件所在盘符及具体路径,并按回车键,或者点击界面上相应按钮,实现浏览本地文件的功能。它能够实现页面的文本链接,能够显示网页图片,并能够通过相应按钮的操作返回上一次访问的页面,还可以通过相应按钮返回后退之前访问的页面。该简易浏览器能帮助用户实现基本的网页浏览功能。
2.2开发工具介绍
三、总体设计
3.1.系统开发平台:
这个简易浏览器由Java语言编写,用Eclipse编译执行
3.2.系统流程图:
当用户登录此简易浏览器时,需要在地址栏输入需要搜索的内容的网址,当输入网址后,该浏览器会链接到相应的URL地址,实现页面的下载,并显示页面,从而实现该简易浏览器连接网络的功能。
3.3功能结构图:
该程序的设计主要分5部分。首先是登录界面的实现,其中要创建按钮,创建菜单栏及下拉菜单的实现;第二部分要实现各按钮的具体的功能包括在其中设置监听器,实现对按钮动作的监听及响应;第三部分用于对地址栏输入内容格式的设定包括如何处理异常等;第四部分实现页面的下载;第五部分用于实现页面的显示。具体的功能结构图如下:
四、详细说明
4.1 系统实施
1、 此部分用于实现用户登陆界面的设计。如登陆界面中的菜单栏,工具栏中的按钮,建立菜单项要用到JMenuItem 命令,建立按钮要用到 JButton 以及用ArrayList 对象,用来存放历史地址,设置出现界面的尺寸要用scrollPane.setPreferredSize(new Dimension(100,500))、初始化界面系统、为jEditorPane1添加事件侦听、为各按钮实现快捷键等函数。
实现此部分功能的代码如下:
JMenuItem backItem=new JMenuItem ("后退"); JMenuItem forwardItem=new JMenuItem ("前进");
登录界面实现 功能按钮实现
URL
连接实现
下载 链接页面 显示链接页面
简易浏览器
JMenu viewMenu=new JMenu ("视图(V)");
JMenuItem fullscreenItem=new JMenuItem ("全屏(U)");
JMenuItem sourceItem=new JMenuItem ("查看源码(C)");
JMenuItem reloadItem=new JMenuItem ("刷新(R)");
public WebBrowser(){
setTitle ("网页浏览器");
setResizable(false);
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('Q');
exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK));
fileMenu.add (saveAsItem);
scrollPane.setPreferredSize(new Dimension(100,500));
contentPane.add (scrollPane, BorderLayout.SOUTH);
2.此部分实现登陆界面各部分按钮的实际功能,及点击它实现的功能。如登录界面中的前进、后退、转向以及在地址栏中输入地址的内容格式不同如何处理,是否一定要加http://、是否加www,以及回车键的功能设计,排除异常等部分的功能功能设计,在此只附部分代码。
此部分代码为点击转向及控制在地址栏中输入内容及规则的设置的代码。
JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);
else if(url.length ()>0&&!url.startsWith ("http://")) {
//在url前面添加“http://”
url="http://"+url;
try {
jEditorPane1.setPage (url );
history.add(url);
historyIndex=history.size()-1;
jEditorPane1.setEditable(false); //add by copy editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex) {
JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
else if(url.length ()==0){
JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
else if (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); //add by copy editor :)
jEditorPane1.revalidate ();
jurl.setMaximumSize (jurl.getPreferredSize ());