java开发网页浏览器开发源代码.docx
- 文档编号:4084211
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:287.78KB
java开发网页浏览器开发源代码.docx
《java开发网页浏览器开发源代码.docx》由会员分享,可在线阅读,更多相关《java开发网页浏览器开发源代码.docx(19页珍藏版)》请在冰豆网上搜索。
java开发网页浏览器开发源代码
实训报告
题目:
网页浏览器开发
系(部):
软件工程系
班级:
11软件技术302班
学号:
2011010201
姓名:
指导教师:
傅翠玉、邓奉先、邢益良
起止时间:
2012年3月26日至30日
海南软件职业技术学院
实训报告
实训项目名称
网页浏览器开发
编号
专业
软件技术
班级
302班
学号
2011010201
姓名
蔡晓丽
成绩
指导教师
傅翠玉邓奉先邢益良
时间
2012.4.9-2012.4.13
实训
目的
及
要求
实习目的:
1、通过本项目的实训和操作,学会使用eclipse开发网页浏览器,掌握软件开发的流程、程序调试方法;
2、通过老师的指导、团队小组的齐心协力,能够根据所学的知识去解决“网页浏览器”开发中存在的一些实际问题,以及能够独立完成一些简单的网页浏览器开发、管理、维护等工作;
3、提高分析问题、解决问题、强化实践技能和提高职业能力。
要求:
1.运用java语言,在eclipse环境下实现简单网页浏览器的开发。
2.基本功能实现:
在界面下实现“文件、编辑、视图、地址栏”等功能菜单或按钮添加,并实现打开网址、后退前进等功能。
3.扩展功能:
查看源代码、另存为、刷新屏幕等功能。
实训
内容
描述
一、开发框架搭建
1、打开eclipse,在“文件”下选择新建,创建名字为“WebBrowser”的Java项目
2、在“包资源管理器”窗口下选择“WeBrowser”项目,新建名为“Browser”
的类。
3、在本次开发中,Browser类使用到Swing组件下的JFrame框架类,和HyperlinkListener、ActionListener接口,相关JFrame、接口信息可查询
API文档。
Eclipse自动导入需要的awt、swing包。
点击第七行错误提示处,根据提示“添加两个未实现的方法”。
4、创建Browser类的构造函数Browser(),并实例化产生browser对象
5、运行该程序,产生一个浏览器窗口。
二、组件添加—创建菜单栏、添加菜单和菜单项
1、创建菜单栏,添加”文件、编辑、视图”等菜单项。
二、学生扩展
根据以上提示,查阅相关资料,在框架中完成下拉菜单项的添加、和其他组件的添加。
1、文件:
另存为、退出;
2、编辑:
后退、前进;
3、视图:
全屏、查看源代码、刷新。
实训
方法
与
步骤
packagecrs;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.*;
importjava.util.EventObject;
importjava.util.Set;
importjavax.swing.JToolBar;
importjava.awt.*;
importjavax.swing.JMenu;
importjava.util.ArrayList;
importjavax.swing.event.HyperlinkEvent;
importjavax.swing.event.HyperlinkListener;
publicclassAssextendsJFrameimplementsHyperlinkListener,ActionListener{
/**
*@paramargs
*/
Stringa[]=newString[15];
inti=0;
JWindowwindow=newJWindow(Ass.this);/*建立菜单栏*/
//JWindow是一个容器,可以显示在用户桌面上的任何位置
JToolBartoolBar=newJToolBar();
JButtonpicSave=newJButton("另存为");
JButtonback=newJButton("后退");
JButtonadvance=newJButton("前进");
JButtonframesourc=newJButton("查看源代码");
JButtonexitIt=newJButton("退出");
JMenuItemEnter=newJMenuItem("回车键(Enter)");
JToolBarcha=newJToolBar();
JLabellaber=newJLabel("地址");
JTextFieldwenbenkuang=newJTextField(50);
JButtonbutton=newJButton("转向");
Boxadress=Box.createHorizontalBox();
/*建立地址栏*/
/*setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);*/
/*网页显示区的创建*/
JEditorPanejeditorpane=newJEditorPane();
JScrollPanescrollpane=newJScrollPane(jeditorpane);
//staticJFramefrm=newJFrame();
//privateArrayListhistory=newArrayList();//定义一个全局变量
//privateinthistoryIndex=0;
JEditorPaneetxt=newJEditorPane();/*文本编辑器*/
JScrollPanejsetxt=newJScrollPane(etxt);/*创建滚动窗格*/
//ContainercontenPane=newContainer();
JMenuBarjMenuBar1=newJMenuBar();
/*建立菜单组*/
JMenufileMenu=newJMenu("文件(F)");
JMenueditMenu=newJMenu("编辑(E)");
JMenuviewMenu=newJMenu("视图(V)");
JMenuinsertMenu=newJMenu("插入(I)");
JMenuformMenu=newJMenu("格式(O)");
JMenutoolMenu=newJMenu("工具(T)");
JMenuItemsaveAsItem=newJMenuItem("另存为(A)...");
JMenuItembac=newJMenuItem("后退(E)");
JMenuItemadvanc=newJMenuItem("前进(A)");
JMenuItemFull=newJMenuItem("全屏(U)");
JMenuItemframesource=newJMenuItem("查看源代码(C)");
JMenuItemrefresh=newJMenuItem("刷新(R)");
privateObjectexiTtem;
publicAss(){
setTitle("网页浏览器");
this.setSize(600,300);
jMenuBar1.add(fileMenu);
jMenuBar1.add(editMenu);
jMenuBar1.add(viewMenu);
jMenuBar1.add(insertMenu);
jMenuBar1.add(formMenu);
jMenuBar1.add(toolMenu);
setJMenuBar(jMenuBar1);
fileMenu.add("另存为(A)");
fileMenu.addSeparator();/*在菜单隔离项中添加*/
fileMenu.add("后退(E)");
editMenu.add(advanc);
editMenu.addSeparator();
editMenu.add(bac);
viewMenu.add(Full);
viewMenu.addSeparator();
viewMenu.add(framesource);
viewMenu.addSeparator();
viewMenu.add(refresh);
/*在工具栏中添加按钮组件*/
toolBar.add(picSave);
toolBar.add(back);
toolBar.add(advance);
toolBar.add(framesourc);
toolBar.add(exitIt);
/*java.awt.ContainercontentPane=getContentPane();((java.awt.Container)contentPane).add(toolBar,BorderLayout.NORTH);*/
ContainercontenPane=getContentPane();
contenPane.add(toolBar,BorderLayout.NORTH);/*工具栏最上边*/
contenPane.add(cha,BorderLayout.CENTER);/*中间标签和地址文本框和按钮*/
adress.add(laber);
adress.add(wenbenkuang);
adress.add(button);
cha.add(adress);
/*添加网页显示区,并设置大小*/
scrollpane.setPreferredSize(newDimension(100,500));
/**将网页显示布局在南面,也就是下面**/
contenPane.add(scrollpane,BorderLayout.SOUTH);
//contenPane.add(etxt,BorderLayout.CENTER);/*文本编辑器*/
//contenPane.add(jsetxt,BorderLayout.SOUTH);/*滚动窗格*/
jsetxt.setPreferredSize(newDimension(100,500));/*滚动窗格大小*/
contenPane.setVisible(true);
wenbenkuang.addActionListener(this);
exitIt.addActionListener(this);
refresh.addActionListener(this);
advanc.addActionListener(this);
advance.addActionListener(this);
button.addActionListener(this);
fileMenu.addActionListener(this);
back.addActionListener(this);
bac.addActionListener(this);
framesourc.addActionListener(this);
}
publicstaticvoidmain(String[]args){
//TODO自动生成方法存根
Assbrowser=newAss();
browser.pack();
browser.setVisible(true);
}
publicvoidactionPerformed(ActionEventh){
if(h.getSource()==exitIt)//获取事件源,h为事件
{
System.exit(0);//退出
}
elseif(h.getSource()==button||h.getSource()==wenbenkuang)//获取原文件,判断转向按钮是否被按下、文本框内是否有内容
{
Stringurl="";
url=wenbenkuang.getText();//获取文本框内容
i++;
a[this.i]=url;
this.i++;
if(url.length()>0&&url.startsWith("http:
//"));//对输入网址的判断,网址长度大于零
System.out.println(url);
url="http:
//"+url;//当输入的网址中不含有http:
//时,将自动添加http:
//
{
try{
//jeditorpane.setContentType("text/html");
jeditorpane.setPage(url);//页面显示框
jeditorpane.revalidate();
//System.out.println("yes");
}
catch(Exceptionex){
JOptionPane.showMessageDialog(Ass.this,"无法找到搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}//显示异常信息
}
}
elseif(h.getSource()==bac||h.getSource()==back)
{
i--;
try{
jeditorpane.setPage(a[i]);//页面显示框
jeditorpane.revalidate();
}
catch(Exceptionex){
JOptionPane.showMessageDialog(Ass.this,"无法找到搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
//前进
elseif(h.getSource()==framesourc)
{
i++;
try{
jeditorpane.setPage(a[i]);//页面显示框
}
catch(Exceptionex){
JOptionPane.showMessageDialog(Ass.this,"无法找到该源代码","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
elseif(h.getSource()==advance||h.getSource()==advanc)
{
i++;
try{
jeditorpane.setPage(a[i]);//页面显示框
}
catch(Exceptionex){
JOptionPane.showMessageDialog(Ass.this,"无法找到搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
elseif(h.getSource()==refresh){
Stringurr="";
urr=wenbenkuang.getText();//获取文本框内容
if(urr.length()>0&&urr.startsWith("http:
//"))//刷新就是从新显示页面,相当于转向的功能
{
try{
jeditorpane.setPage(urr);
jeditorpane.revalidate();
}catch(Exceptionex){
JOptionPane.showMessageDialog(Ass.this,"无法找到搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);
}
}
}
}
publicvoidhyperlinkUpdate(HyperlinkEventarg0){
//TODO自动生成方法存根
}
};
实训
结果
分析
与
结论
图1
建立网页浏览器窗口运行界面:
图2
在浏览器窗口上添加工具栏运行界面:
图3
在浏览器窗口上添加地址栏运行界面:
图4
后退链接运行界面:
图5
查看源代码链接运行界面:
图6
前进链接运行界面:
图7
输入错误网址提示运行界面:
个人
收获
及
体会
体会:
1在这次实训中,我遇到了很多问题。
在运用知识点时,不懂得运用课本上的知识和老师给出的相关资料结合起来,同时也不熟悉课本上的知识以致于在使用知识点时,出现了很多的漏点。
2在写的过程中,不能把代码的板块位置放错,一但错了程序就会报错或不能实现该代码的作用。
3其过程中,必须要定义和初始化我们要用到的变量。
类也是至关重要的。
语法错误是我们不可避免的,但是必须要认真的去查找自己所遇的错误并做出修改。
4通过本次实训,学习了接口和if{}try{}chath{};的用法。
5在实训的第一天,通过老师的指导、同学的互相帮助、查找资料和课本上的知识来在eclipse的环境中实现“网页浏览器”的窗口。
6第二天和同学们的相互学习、老师的指导和自己查找相关的资料来实现了在窗口上建立工具栏。
7第三天实现“文件”菜单下“退出”菜单项退出事件。
实现工具栏上“退出”按钮退出事件。
实现地址栏“转向”按钮事件、响应键盘回车事件。
8第四天自由扩展。
9
10第五天,写实训报告。
主要
代码
清单
此处填写重要代码清单(附注释)
/*建立地址栏*/
JToolBartoolBar=newJToolBar();
JButtonpicSave=newJButton("另存为");
JButtonback=newJButton("后退");
JButtonadvance=newJButton("前进");
JButtonframesourc=newJButton("查看源代码");
JButtonexitIt=newJButton("退出");
JMenuItemEnter=newJMenuItem("回车键(Enter)");
JToolBarcha=newJToolBar();
JLabellaber=newJLabel("地址");
JTextFieldwenbenkuang=newJTextField(50);
JButtonbutton=newJButton("转向");
Boxadress=Box.createHorizontalBox();
///////////////////////////////////////////////
建立菜单组:
JMenufileMenu=newJMenu("文件(F)");
JMenueditMenu=newJMenu("编辑(E)");
JMenuviewMenu=newJMenu("视图(V)");
JMenuinsertMenu=newJMenu("插入(I)");
JMenuformMenu=newJMenu("格式(O)");
JMenutoolMenu=newJMenu("工具(T)");
JMenuItemsaveAsItem=newJMenuItem("另存为(A)...");
JMenuItembac=newJMenuItem("后退(E)");
JMenuItemadvanc=newJMenuItem("前进(A)");
JMenuItemFull=newJMenuItem("全屏(U)");
JMenuItemframesource=newJMenuItem("查看源代码(C)");
JMenuItemrefresh=newJMenuItem("刷新(R)");
///////////////////////////////////////////////////
/*在工具栏中添加按钮组件*/
toolBar.add(picSave);
toolBar.add(back);
toolBar.add(advance);
toolBar.add(framesourc);
toolBar.add(exitIt);
/////////////////////////////////////////
链接各个窗口:
if(h.getSource()==exitIt)//获取事件源,h为事件
{
System.exit(0);//退出
}
elseif(h.getSource()==button||h.getSource()==wenbenkuang)//获取原文件,判断转向按钮是否被按下、文本框内是否有内容
{
Stringurl="";
url=wenbenkuang.getText();//获取文本框内容
i++;
a[this.i]=url;
this.i++;
if(url.length()>0&&url.startsWith("http:
//"));//对输入网址的判断,网址长度大于零
System.out.println(url);
url="http:
//"+url;//当输入的网址中不含有http:
//时,将自动添加http:
//
{
try{
//jeditorpane.setContentType("text/html");
jeditorpane.setPage(url);//页面显示框
jeditorpane.revalidate();
//System.out.println("yes");
}
catch(Exceptionex){
JOptio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 开发 网页浏览器 源代码