基于java的网页_基于java的简单网页浏览器

本文介绍了如何使用Java编程语言创建一个基本的网页浏览器。主要包含两个类:WebBrowser和ViewSourceFrame,分别用于实现浏览器界面和查看网页源代码的功能。浏览器支持地址栏输入、后退、前进、全屏、源代码查看和网页保存等功能。
摘要由CSDN通过智能技术生成

用java编写简单网页浏览器,用到两个类WebBrowser and ViewSourceFreme,他们分别的功能是:

WebBrowser.java 类是网页浏览器的主类文件,生成网页浏览器的主题框架,并实现框架上各个组件的监听事件。ViewSourceFrame.java类是实现网页浏览器源代码查看的主体框架,并提供了源代码的保存功能。

好了,废话少说,直接上代码

package Browser;

import java.awt.*;

import javax.swing.event.*;

import java.awt.event.ActionEvent;

import

java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import

java.awt.event.KeyEvent;

import java.io.*;

import

java.util.ArrayList;

import java.net.*;

import javax.swing.*;

import javax.swing.event.HyperlinkEvent;

import

javax.swing.event.HyperlinkListener;

import javax.swing.text.*;

public class WebBrowser extends JFrame implements

HyperlinkListener,

ActionListener {

// 建立工具栏用来显示地址栏

JToolBar bar =

new JToolBar();

// 建立网页显示界面

JTextField jurl = new JTextField(60);

JEditorPane

jEditorPane1 = new JEditorPane();

JScrollPane scrollPane = new

JScrollPane(jEditorPane1);

JFileChooser chooser = new JFileChooser();

JFileChooser chooser1 = new

JFileChooser();

String htmlSource;

JWindow window = new

JWindow(WebBrowser.this);

JButton button2 = new JButton("还原窗口");

Toolkit toolkit =

Toolkit.getDefaultToolkit();

// 建立菜单栏

JMenuBar jMenuBar1 = new JMenuBar();

// 建立菜单组

JMenu

fileMenu = new JMenu("文件(F)");

// 建立菜单项

JMenuItem saveAsItem = new JMenuItem("另存为(A)");

JMenuItem

exitItem = new JMenuItem("退出(X)");

JMenu editMenu = new

JMenu("编辑(E)");

JMenuItem backItem = new JMenuItem("后退");

JMenuItem

forwardItem = new JMenuItem("前进");

JMenu viewMenu = new

JMenu("视图(V)");

JMenuItem fullscreenItem = new

JMenuItem("全屏(U)");

JMenuItem sourceItem = new

JMenuItem("源代码(C)");

JMenuItem reloadItem = new

JMenuItem("刷新(R)");

// 建立工具栏

JToolBar toolBar = new

JToolBar();

// 建立工具栏中的按钮

JButton picSave = new

JButton("另存为");

JButton picBack = new JButton("后退");

JButton picForward

= new JButton("前进");

JButton picView = new JButton("查看源代码");

JButton

picExit = new JButton("退出");

JLabel label = new JLabel("地址");

JButton button = new

JButton("转向");

Box adress =

Box.createHorizontalBox();

//ArrayList对象,用来存放历史地址

private ArrayList

history = new ArrayList();

//整型变量,表示历史地址的访问顺序

private int

historyIndex;

/**

* 构造函数

* 初始化图形用户界面

*/

public

WebBrowser(){

setTitle("网页浏览器");

setResizable(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//为jEditorPane1添加时间侦听

jEditorPane1.addHyperlinkListener(this);

//为组件fileMenu设置热键‘F’

fileMenu.setMnemonic('F');

saveAsItem.setMnemonic('S');

//为“另存为”组件设置快捷键Ctrl+S

saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

exitItem.setMnemonic('X');

exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));

//将菜单项saveAsItem加入菜单组fileMenu中

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.add(

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写java浏览器程序 * * Explorer.java * * Created on 2009年6月20日 */ package container; /** * * @author Administrator */ public class Explorer extends javax.swing.JFrame { /** Creates new form Explorer */ public Explorer() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabelSite = new javax.swing.JLabel(); jTextFieldAddress = new javax.swing.JTextField(); jButtonGo = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jEditorPaneHTML = new javax.swing.JEditorPane(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabelSite.setFont(new java.awt.Font("宋体", 1, 14)); // NOI18N jLabelSite.setText("地址:"); jButtonGo.setText("转到"); jButtonGo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonGoActionPerformed(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(75, 75, 75) .addComponent(jLabelSite) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextFieldAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(2, 2, 2) .addComponent(jButtonGo, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(70, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(19, 19, 19) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButtonGo) .addComponent(jLabelSite) .addComponent(jTextFieldAddress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jEditorPaneHTML.setEditable(false); jEditorPaneHTML.addHyperlinkListener(new javax.swing.event.HyperlinkListener() { public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) { jEditorPaneHTMLHyperlinkUpdate(evt); } }); jScrollPane1.setViewportView(jEditorPaneHTML); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGap(27, 27, 27) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 483, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 312, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// private void jButtonGoActionPerformed(java.awt.event.ActionEvent evt) { String myURL=this.jTextFieldAddress.getText().trim(); try{ if(myURL!=null&&!myURL.equals("")) jEditorPaneHTML.setPage(myURL); }catch(java.io.IOException e){ e.printStackTrace(); } } private void jEditorPaneHTMLHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) { try{ if(evt.getEventType()==javax.swing.event.HyperlinkEvent.EventType.ACTIVATED) jEditorPaneHTML.setPage(evt.getURL()); }catch(java.io.IOException e){ e.printStackTrace(); } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Explorer().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButtonGo; private javax.swing.JEditorPane jEditorPaneHTML; private javax.swing.JLabel jLabelSite; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jTextFieldAddress; // End of variables declaration }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值