`

利用Java实现网页浏览器

 
阅读更多
导读:
  使用VC,VB或者C#的开发者们对于在程序里面嵌入一个网页来说,那真是小事一桩。但是在JAVA里面,却几乎是不可能实现的任务。JEditorPane虽然说可以打开网页,但是它那解析速度以及解析质量,对于今天日益复杂的网页内容来说,就像没有一样。今天我们就使用一个开源的组件(jdic)来实现在JAVA程序里面嵌入网页的效率。
  下面言归正转吧,我们来介绍一下这个开源的组件,它的名字叫JDIC(JDesktop Integration Components),网址为:https://jdic.dev.java.net/,它提供了一种访问桌面组件的API,其中JDK6.0就采纳了其中了一些,比如系统栏图标的SystemTray和SystemIcon,还有代表桌面的Desktop等等,可见这个API是挺不错的。由于网页浏览器的特殊性,标准的JDK并没有把它加入进来,但是我们一样可以下载它来使用这个功能。明显地,这个功能是用本地方法实现的,所以下载完以后,把jdic.dll放到我们的path目录中,比如system32文件夹下面,然后我们就可以使用它的功能从而增加我们的JAVA程序了。
  上面的例子代码如下:
  /*
  * Test1.java
  *
  * Created on 2007-10-2, 17:29:30
  *
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
  package test2;
  import java.awt.BorderLayout;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.net.MalformedURLException;
  import java.net.URL;
  import java.util.logging.Level;
  import java.util.logging.Logger;
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JPanel;
  import javax.swing.JTextField;
  import org.jdesktop.jdic.browser.IWebBrowser;
  import org.jdesktop.jdic.browser.WebBrowser;
  import org.jdesktop.jdic.browser.WebBrowserEvent;
  import org.jdesktop.jdic.browser.WebBrowserListenerAdapter;
  /**
  *
  * @author hadeslee
  */
  public class Test1 extends JPanel implements ActionListener {
  private JTextField input;
  private JButton go;
  private IWebBrowser web;
  public Test1() {
  super(new BorderLayout());
  initWindow();
  }
  private void initWindow() {
  try {
  web = new WebBrowser();
  web.addWebBrowserListener(new MyListener());
  go = new JButton("转到");
  input = new JTextField();
  JPanel up = new JPanel(new BorderLayout());
  up.add(input, BorderLayout.CENTER);
  up.add(go, BorderLayout.EAST);
  this.add(up, BorderLayout.NORTH);
  this.add(web.asComponent(), BorderLayout.CENTER);
  input.addActionListener(this);
  go.addActionListener(this);
  } catch (Exception ex) {
  Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
  }
  JFrame jf = new JFrame("JAVA浏览器");
  jf.add(this, BorderLayout.CENTER);
  jf.setSize(500, 300);
  jf.setLocationRelativeTo(null);
  jf.setVisible(true);
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  public void actionPerformed(ActionEvent ae) {
  doOpen();
  }
  private void doOpen() {
  try {
  String text = input.getText();
  if (text == null || text.equals("")) {
  return;
  }
  if (!text.toLowerCase().startsWith("http://")) {
  text = "http://" + text;
  }
  web.setURL(new URL(text));
  } catch (MalformedURLException ex) {
  Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
  }
  }
  public static void main(String[] args) {
  new Test1();
  }
  private class MyListener extends WebBrowserListenerAdapter {
  private MyListener() {}
  @Override
  public void documentCompleted(WebBrowserEvent arg0) {
  System.out.println("文档下载完。。。");
  web.executeScript("alert('文档下载完毕!')");
  // web.setContent("

Hello world!!

" +
  // "点我");
  // web.removeWebBrowserListener(this);
  }
  }
  }
  它比一般的别的实现好的地方就是,它可以很完全地和JAVA代码进行交互,包括浏览器事件的监听,浏览器内容的获取,以及自己调用浏览器来执行一段javasript,这些都是很强大并且很实用的功能。
  怎么样,这下满足了一下我们把网页嵌入到JAVA程序中的愿望了吧。

分享到:
评论

相关推荐

    利用JAVA实现网页浏览器的方法

    "利用JAVA实现网页浏览器的方法" 本文将为您详细介绍如何使用 JAVA 实现网页浏览器,使用 JDIC(JDesktop Integration Components)组件来嵌入网页浏览器。 标题:利用 JAVA 实现网页浏览器的方法 描述:JAVA ...

    基于java开发的网页浏览器

    基于Java开发的网页浏览器是利用Java的Swing或JavaFX库来构建用户界面,并通过Java的网络功能来实现HTTP请求和HTML内容解析。以下是关于这个主题的详细知识点: 1. **Java Swing**: Swing是Java的标准GUI(图形用户...

    网页浏览器(java实现)

    总之,用Java实现一个网页浏览器涉及到网络编程、GUI设计、HTML解析等多个领域。虽然这个项目对初学者来说具有一定的挑战性,但它能提供宝贵的学习经验,加深对网络通信和JavaFX的理解。同时,这也是一个不断迭代和...

    Java网页浏览器

    董改名浏览器2可能是一个特定的Java网页浏览器项目,可能包含了上述某些特性的实现或者优化。开发这样的浏览器需要深入理解Java语言、网络编程、前端技术以及用户交互设计。通过持续改进和更新,Java网页浏览器可以...

    java 程序设计网页浏览器

    以上是构建一个简易Java网页浏览器涉及的主要技术点,每个点都需要深入理解和实践。实际开发中,还可以考虑添加更多高级功能,如页面预加载、多标签页、下载管理等,以增强浏览器的功能和用户体验。

    java调用chrome浏览器内核cef实现,非jxbrowser

    - 为了实现Java和JavaScript之间的通信,你可以利用CEF的`CEFMessageRouterBrowserSide`,创建Java端的消息处理器,并通过JavaScript发送消息。 - 另一方面,你也可以通过注入JavaScript代码或使用`CEFClient`接口...

    java swing 内嵌浏览器

    DJNativeSwing是一个强大的库,它允许Java应用利用Java SWT(标准窗口工具包)的功能,其中包括内嵌浏览器的支持。SWT是Eclipse项目的一部分,它提供了一种与操作系统更紧密集成的方式来创建GUI,与Java Swing相比,...

    纯Java实现整个网页截图项目源代码

    在本项目中,"纯Java实现整个网页截图项目源代码" 是一个利用Java编程语言来实现的实用程序,它能够捕获整个网页的图像并将其保存为图片文件。这个项目的核心在于利用DJNativeSwing组件,这是一个开源的Java库,它...

    Java网页浏览器 Lobo

    **Java网页浏览器Lobo**是基于Java平台的开源网络浏览器,它为用户提供了一种在Java环境中浏览互联网的解决方案。Lobo项目始于2000年,旨在创建一个完全由Java编写、功能丰富的浏览器,以便开发者可以利用Java的跨...

    基于java的浏览器的设计与实现课程设计.pdf

    【基于Java的浏览器设计与实现】是一门课程设计,旨在让学生通过使用Java语言在Eclipse环境中构建一个Web浏览器,以实现基本的浏览功能,并在Windows操作系统上运行。这个设计涵盖了图形界面设计和底层功能实现两个...

    简易网页浏览器(JAVA、含报告)

    【简易网页浏览器(JAVA、含报告)】是一个针对JAVA初学者设计的教学项目,旨在帮助学习者深入理解JAVA编程语言,并掌握如何利用JAVA实现一个基本的网页浏览功能。这个项目不仅包含了源代码,还附带了一份详细的报告...

    java基于IE内核网页浏览器

    Java基于IE内核的网页浏览器是一种使用Java编程语言开发的软件,它利用Internet Explorer的内核来渲染和解析网页内容。这种浏览器通常采用多标签式界面,为用户提供多个网页同时浏览的功能,增强了用户在互联网上的...

    Java实现网页截图技术

    ### Java实现网页截图技术:深度解析与代码示例 在当今的互联网时代,网页截图技术在许多场景下都有着广泛的应用,如自动化测试、数据分析、页面快照保存等。本文将深入探讨如何使用Java来实现网页截图,从原理到...

    基于java的网页浏览器.zip

    以下将详细探讨基于Java实现网页浏览器的一些关键知识点: 1. **Swing或JavaFX**: Java提供了两种图形用户界面(GUI)工具包——Swing和JavaFX,用于创建桌面应用程序,如我们的网页浏览器。Swing是较老但广泛使用...

    Java实现浏览器CA证书的签名和验证

    本文利用Java技术实现客户端数字证书的签名和验证,关键在于理解数字签名的工作原理。数字签名是使用发送者的私钥对消息或文档进行加密的一种方式,接收者或其他人可以使用发送者的公钥来验证签名。这个过程确保了...

    java开发网页浏览器开发源代码

    在这个实训项目中,学生被要求使用Java来开发一个网页浏览器,这涉及到对Java基础、Swing库以及软件开发流程的理解和实践。 首先,开发环境是Eclipse,这是一个流行的Java集成开发环境(IDE),提供了编写、调试和...

    Java编写的网页浏览器

    这个项目旨在提供一个基础的平台,让学习者了解浏览器的基本工作原理,以及如何利用Java实现这样的应用程序。下面我们将深入探讨相关的Java技术和网页浏览器的基本架构。 一、Java基础知识 Java是一种广泛使用的...

    java 实现整张网页快照

    这里我们关注的焦点是如何利用Java实现整张网页的快照功能。通过标题"java 实现整张网页快照"和描述,我们可以推断这个项目是通过Java中的JWebBrowser库来完成这个任务的,它能够捕获整个网页,而不是仅仅局限于屏幕...

    基于Java的网页浏览器.zip

    在本项目"基于Java的网页浏览器.zip"中,开发者利用Java技术实现了一个基本的网页浏览器。这个项目展示了Java语言在创建复杂桌面应用方面的潜力,尤其是与网络交互的能力。以下是关于这个项目的一些关键知识点: 1....

    使用Java开发的浏览器,基于Chromium.zip

    1. **多线程处理**:浏览器需要处理多个并发任务,如网络请求、渲染页面、JavaScript执行等,因此必须有效利用Java的并发工具,如线程池和锁机制。 2. **安全性**:Java和Chromium都强调安全性,开发过程中需要确保...

Global site tag (gtag.js) - Google Analytics