java编写浏览器

以前采用vb的webbrowser插件可以开发一个简单的浏览器,没想到java也具备这个功能。不过开发出来的看起来比较傻。看来不是java应该做的事情。或许是java还需要编写更多的代码来解析css和js

package com.javaer.examples.awt;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.io.IOException;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLFrameHyperlinkEvent;

public class WebView extends JFrame implements HyperlinkListener{
	public WebView() throws Exception {
		 setSize(640, 480);      setTitle(‘‘百度:中国最大的搜索引擎‘‘);  
	      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	      JEditorPane editorPane = new JEditorPane();  
	      JScrollPane scrollPane = new JScrollPane(editorPane);  
	      editorPane.setEditable(false);  
	      
	      //要能响应网页中的链接,则必须加上超链监听器  
	      editorPane.addHyperlinkListener(this);  
	      String path = ‘‘http://www.baidu.com‘‘;  
	      try  
	      {  
	         editorPane.setPage(path);  
	      }  
	      catch (IOException e)  
	      {  
	         System.out.println(‘‘读取页面 ‘‘ + path + ‘‘ 出错. ‘‘ + e.getMessage());  
	      }  
	      Container container = getContentPane();  
	      container.setBackground(Color.WHITE);
	      //让editorPane总是填满整个窗体  
	      container.add(scrollPane, BorderLayout.CENTER);  

	}
	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		WebView wv = new WebView();
		wv.setVisible(true);

	}

	
	  //超链监听器,处理对超级链接的点击事件,但对按钮的点击还捕获不到  
	@Override
	   public void hyperlinkUpdate(HyperlinkEvent e)  
	   {  
	      if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)  
	      {  
	         JEditorPane pane = (JEditorPane) e.getSource();  
	         if (e instanceof HTMLFrameHyperlinkEvent)  
	         {  
	            HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent) e;  
	            HTMLDocument doc = (HTMLDocument) pane.getDocument();  
	            doc.processHTMLFrameHyperlinkEvent(evt);  
	         }  
	         else  
	         {  
	            try  
	            {  
	               pane.setPage(e.getURL());  
	            }  
	            catch (Throwable t)  
	            {  
	               t.printStackTrace();  
	            }  
	         }  
	      }  
	   }  

}


‘‘java浏览器‘‘
首发于http://java-er.com - http://java-er.com/blog/java-browser/

posted on 2012-12-15 09:35 月小升 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yuexiaosheng/archive/2012/12/15/2818940.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值