导读:
使用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 实现网页浏览器,使用 JDIC(JDesktop Integration Components)组件来嵌入网页浏览器。 标题:利用 JAVA 实现网页浏览器的方法 描述:JAVA ...
基于Java开发的网页浏览器是利用Java的Swing或JavaFX库来构建用户界面,并通过Java的网络功能来实现HTTP请求和HTML内容解析。以下是关于这个主题的详细知识点: 1. **Java Swing**: Swing是Java的标准GUI(图形用户...
总之,用Java实现一个网页浏览器涉及到网络编程、GUI设计、HTML解析等多个领域。虽然这个项目对初学者来说具有一定的挑战性,但它能提供宝贵的学习经验,加深对网络通信和JavaFX的理解。同时,这也是一个不断迭代和...
董改名浏览器2可能是一个特定的Java网页浏览器项目,可能包含了上述某些特性的实现或者优化。开发这样的浏览器需要深入理解Java语言、网络编程、前端技术以及用户交互设计。通过持续改进和更新,Java网页浏览器可以...
以上是构建一个简易Java网页浏览器涉及的主要技术点,每个点都需要深入理解和实践。实际开发中,还可以考虑添加更多高级功能,如页面预加载、多标签页、下载管理等,以增强浏览器的功能和用户体验。
- 为了实现Java和JavaScript之间的通信,你可以利用CEF的`CEFMessageRouterBrowserSide`,创建Java端的消息处理器,并通过JavaScript发送消息。 - 另一方面,你也可以通过注入JavaScript代码或使用`CEFClient`接口...
DJNativeSwing是一个强大的库,它允许Java应用利用Java SWT(标准窗口工具包)的功能,其中包括内嵌浏览器的支持。SWT是Eclipse项目的一部分,它提供了一种与操作系统更紧密集成的方式来创建GUI,与Java Swing相比,...
在本项目中,"纯Java实现整个网页截图项目源代码" 是一个利用Java编程语言来实现的实用程序,它能够捕获整个网页的图像并将其保存为图片文件。这个项目的核心在于利用DJNativeSwing组件,这是一个开源的Java库,它...
**Java网页浏览器Lobo**是基于Java平台的开源网络浏览器,它为用户提供了一种在Java环境中浏览互联网的解决方案。Lobo项目始于2000年,旨在创建一个完全由Java编写、功能丰富的浏览器,以便开发者可以利用Java的跨...
【基于Java的浏览器设计与实现】是一门课程设计,旨在让学生通过使用Java语言在Eclipse环境中构建一个Web浏览器,以实现基本的浏览功能,并在Windows操作系统上运行。这个设计涵盖了图形界面设计和底层功能实现两个...
【简易网页浏览器(JAVA、含报告)】是一个针对JAVA初学者设计的教学项目,旨在帮助学习者深入理解JAVA编程语言,并掌握如何利用JAVA实现一个基本的网页浏览功能。这个项目不仅包含了源代码,还附带了一份详细的报告...
Java基于IE内核的网页浏览器是一种使用Java编程语言开发的软件,它利用Internet Explorer的内核来渲染和解析网页内容。这种浏览器通常采用多标签式界面,为用户提供多个网页同时浏览的功能,增强了用户在互联网上的...
### Java实现网页截图技术:深度解析与代码示例 在当今的互联网时代,网页截图技术在许多场景下都有着广泛的应用,如自动化测试、数据分析、页面快照保存等。本文将深入探讨如何使用Java来实现网页截图,从原理到...
以下将详细探讨基于Java实现网页浏览器的一些关键知识点: 1. **Swing或JavaFX**: Java提供了两种图形用户界面(GUI)工具包——Swing和JavaFX,用于创建桌面应用程序,如我们的网页浏览器。Swing是较老但广泛使用...
本文利用Java技术实现客户端数字证书的签名和验证,关键在于理解数字签名的工作原理。数字签名是使用发送者的私钥对消息或文档进行加密的一种方式,接收者或其他人可以使用发送者的公钥来验证签名。这个过程确保了...
在这个实训项目中,学生被要求使用Java来开发一个网页浏览器,这涉及到对Java基础、Swing库以及软件开发流程的理解和实践。 首先,开发环境是Eclipse,这是一个流行的Java集成开发环境(IDE),提供了编写、调试和...
这个项目旨在提供一个基础的平台,让学习者了解浏览器的基本工作原理,以及如何利用Java实现这样的应用程序。下面我们将深入探讨相关的Java技术和网页浏览器的基本架构。 一、Java基础知识 Java是一种广泛使用的...
这里我们关注的焦点是如何利用Java实现整张网页的快照功能。通过标题"java 实现整张网页快照"和描述,我们可以推断这个项目是通过Java中的JWebBrowser库来完成这个任务的,它能够捕获整个网页,而不是仅仅局限于屏幕...
在本项目"基于Java的网页浏览器.zip"中,开发者利用Java技术实现了一个基本的网页浏览器。这个项目展示了Java语言在创建复杂桌面应用方面的潜力,尤其是与网络交互的能力。以下是关于这个项目的一些关键知识点: 1....
1. **多线程处理**:浏览器需要处理多个并发任务,如网络请求、渲染页面、JavaScript执行等,因此必须有效利用Java的并发工具,如线程池和锁机制。 2. **安全性**:Java和Chromium都强调安全性,开发过程中需要确保...