基于JAVA的一个简单的浏览器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于JAVA的一个简单浏览器
一、简单介绍:
首先,我是通过HTML来编程实现一个简易的的Web浏览器的,制作过程中需要用到javax.swing包中的JEditorPane类,JEditorPane类是一个文本容器类,功能丰富,其中一个功能是用来显示和编辑个各种不同类型的文本内容,例如,解析HTML文档并显示。
Javax.swing包中JEditorPane类定义为:
Public class JEditorPane extends JTextComponet
{
Public JEditorPane();
//构造方法
Public void setPage ( String url ) throws IOException;
//显示字符串表示的URL的内容
Public void setPage ( URL page ) throws IOException;
//显示给定的URL的内容
……
//其他方法
}
二、实现方法与步骤:
该Web浏览器通过在URL地址栏输入网页地址,根据URL进行链接,并显示连接的网页内容。其实现步骤为;
(1)获得要显示的URL地址。
(2)如果输入的地址合法,则利HJJE此JEditorPane的setPage()方法将页
面内容显示出来。
(3)响应在网页里面打开超级链接的消息。
三、代码与分析:
package html;
import java.io.IOException;
import .URL;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class HtmlBrowser extends JFrame
{
JPanel contentPane; //包含整个框架的容器
BorderLayout borderLayoutAll = new BorderLayout();
JLabel jLabelPrompt = new JLabel();//状态提示框
JPanel jPanelMain = new JPanel();//包含URL编辑框和JEditorPane的容器
BorderLayout borderLayoutMain = new BorderLayout();
JTextField jTextFieldURL = new JTextField();//URL输入框
JEditorPane jEditorPane = new JEditorPane();//显示构造的方法
public HtmlBrowser()
{
try
{
jbInit();//初始化显示界面
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void jbInit()throws Exception //界面初始化
{
contentPane = (JPanel)getContentPane();
contentPane.setLayout(borderLayoutAll);
jPanelMain.setLayout(borderLayoutMain);
jLabelPrompt.setText("简单的HTML浏览器,请在text框内输入正确的URL");
jTextFieldURL.setText("");
jTextFieldURL.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
textFieldURL_actionPerformed(e);
}
});
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add(jEditorPane);
jPanelMain.add(jTextFieldURL,"North");
jPanelMain.add(scrollPane,"Center");
contentPane.add(jLabelPrompt,"North");
contentPane.add(jPanelMain,"Center");
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
this.setSize(new Dimension(600,500));
this.setTitle("网页浏览器");
this.setVisible(true);
}
void textFieldURL_actionPerformed(ActionEvent e)//输入地址后,回车消息响应
{
try
{
jEditorPane.setPage(jTextFieldURL.getText());//显示所给的RUL的内容
}
catch(IOException ex)
{
JOptionPane msg = new JOptionPane();//提示对话框
JOptionPane.showMessageDialog(this,"不正确的URL地址:"+ jTextFieldURL.getText(),"不正确的输入!!",0);
}
}
void jEditorPane_hyperlinkUpadate(HyperlinkEvent e)//响应页面内打开超级链接的消息
{
if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED)
{
try
{
URL url = e.getURL();//从消息中得到URL的地址
jEditorPane.setPage(url);//显示该URL页面的内容
}
catch(IOException io)
{
JOptionPane msg = new JOptionPane();
JOptionPane.showMessageDialog(this,"不能打开连接!","不正确的输入!",0);
}