在 java 中创建 Web 浏览器
Java 中有几个库可以显示网页,但大多数库在几年前就停产了。在本文中,我们将看到如何创建浏览器并显示网站的内容。
您可以通过三种方式显示网页:
您可以通过三种方式显示网页:
- JEditorPane:包含在 JRE 中,但只显示简单的 HTML 页面。
- JWebBrowser:集成了 Internet Explorer 浏览器。
- JxBrowser:集成了 Chromium 浏览器,这是最有效的方式,因为它允许显示使用 HTML5/CSS3 设计的现代网页, JavaScript、Siverlight......唯一的缺点是它是付费的。
JEditorPane 类
JEditorPane 只允许您显示 HTML 内容,当您想要打开和控制 HTML 文件的显示时,JEditorPane 很有用。
以下示例显示了一个没有 CSS.
生成的显示是静态的,除了查看之外,您无法执行任何操作。我们希望通过将侦听器与超链接相关联来使超链接可点击:
JWebBrowser 的开发基于以下框架和 a 实现提供丰富组件的 SWT。JWebBrowser提供了一个包含Flash播放器,媒体播放器和HTML编辑器的丰富浏览器。
这里是下载JWebBrowser库的链接。您也可以在线下载并测试该应用程序。ici.
JWebBrowser的使用非常简单,如以下代码所示:
JxBrowser API 是付费的,而且非常昂贵,只有在您真正需要它并且在大公司中才推荐它。提供一个月的试用版,只需在页面底部输入您的姓名和电子邮件地址即可获取许可证密钥。
这里是 JxBrowser download 从他们的官方网站。您也可以运行 demo 并测试 application.
以下代码显示了 JxBrowser.
References:
如何使用编辑器窗格和文本窗格
JWebBrowser 类 (DJ Native Swing - SWT) - DJ 项目
类 JWebBrowser
import javax.swing.text.html.HTMLEditorKit;输出:
导入 javax.swing.*;
导入 java.io.*;
import java.net.URL;
导入 java.awt.*;
public class JEditorTest {
public static void main(String[] args) {
JEditorPane jep = new JEditorPane();
jep.setEditable(false);
jep.setBackground(Color.WHITE);
jep.setBounds(316, 110, 598, 545);
HTMLEditorKit kit = 新的 HTMLEditorKit();
jep.setEditorKit(kit);
try {
jep.setPage(new URL(http://imss-www.upmf-grenoble.fr/prevert/Prog/Java/swing/JEditorPane.html”));
}
catch (IOException e) {
jep.setContentType(text/html ”);
jep.setText(无法查看页面”);
}
JScrollPane scrollPane = new JScrollPane(jep);
JFrame f = new JFrame();
// 下一行需要 Java 1.3
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(滚动窗格);
f.setSize(512, 342);
f.show();
}
}
生成的显示是静态的,除了查看之外,您无法执行任何操作。我们希望通过将侦听器与超链接相关联来使超链接可点击:
jep.addHyperlinkListener(new HyperlinkListener() {JEditorPane 还允许您获取信息或编辑网页。
public void hyperlinkUpdate(HyperlinkEvent e) {
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane jepane = (JEditorPane)e.getSource();
try {
jepane.setPage(e.getURL());
}catch (IOException ex) {
jepane.setText(ERROR: ”+ex.getMessage());
}
}
}
});
JWebBrowser
JWebBrowser 是一个库,可以轻松集成到 Swing 应用程序的组件中,以创建一个 Web 浏览器,该浏览器在 Windows 上导入 Internet Explorer 或 Mozilla,在其他操作系统上导入 Mozilla。您需要安装最新版本的 Internet Explorer 以避免组件滞后和 CSS 样式表。JWebBrowser 的开发基于以下框架和 a 实现提供丰富组件的 SWT。JWebBrowser提供了一个包含Flash播放器,媒体播放器和HTML编辑器的丰富浏览器。
这里是下载JWebBrowser库的链接。您也可以在线下载并测试该应用程序。ici.
JWebBrowser的使用非常简单,如以下代码所示:
import java.awt.BorderLayout;
导入 javax.swing.JComponent;
导入 javax.swing.JFrame;
导入 javax.swing.JPanel;
导入 javax.swing.SwingUtilities;
导入 chrriis.common.UIUtils;
导入 chrriis.dj.nativeswing.swtimpl.NativeInterface;
导入 chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
公共类 JWebBrowser {
public static JComponent createContent() {
JPanel contentPane = new JPanel(new BorderLayout());
JWebBrowser webBrowser = 新的 JWebBrowser();
webBrowser.navigate(http://www.orange.fr”);
contentPane.add(web浏览器);
返回 contentPane;
}
public static void main(String[] args) {
NativeInterface.open();
UIUtils.setPreferredLookAndFeel();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createContent(),
BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
}
}
JxBrowser
JxBrowser 是最完整的 API,因为它集成了浏览器 Chromium它是 Chrome for linux 的扩展。JxBrowser 是用 Swing 和 JavaFX 制作的,可以显示用 HTML5/CSS3、JavaScript、Siverlight 设计的网页......JxBrowser API 是付费的,而且非常昂贵,只有在您真正需要它并且在大公司中才推荐它。提供一个月的试用版,只需在页面底部输入您的姓名和电子邮件地址即可获取许可证密钥。
这里是 JxBrowser download 从他们的官方网站。您也可以运行 demo 并测试 application.
以下代码显示了 JxBrowser.
import java.awt.BorderLayout;
导入 javax.swing.JFrame;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
public class JxBrowserTest {
public static void main(String[] args) {
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
JFrame frame = new JFrame();
frame.add(view, BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setVisible(true);
browser.loadURL(http://www.youtube.com”);
}
}
References:
如何使用编辑器窗格和文本窗格
类 JWebBrowser