在 Java 中嵌入 Gecko/WebKit

发布于 2024-08-29 11:57:53 字数 105 浏览 12 评论 0原文

我希望将 Gecko、WebKit 或其他 Web 浏览器嵌入到 Java 中作为 Swing/AWT 控件。 我正在寻找与 JRex 或 JWebPane 不同的东西。

I'd like to have Gecko, WebKit, or another webbrowser embedded in Java as a Swing/AWT control.
I'm looking for something different than JRex or JWebPane.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

没有你我更好 2024-09-05 11:57:53

您可以使用 JxBrowser
它具有一个 Swing/JavaFX 组件,该组件包装了 Chromium 引擎,同时提供丰富的 API 和 out-of-通过 GPU 进行开箱硬件加速。

不幸的是,自 4.0 版本以来,他们已经放弃了对其他引擎(如 Gecko 和 WebKit)的支持。
请注意,除了开源项目之外,它不是免费的。

You could use JxBrowser.
It features a Swing/JavaFX component that wraps the Chromium engine while providing a rich API and out-of-the-box hardware-acceleration through the GPU.

Unfortunately, they've dropped support for other engines (like Gecko and WebKit) since 4.0 version.
Note that it's not free, except for open-source projects.

乖不如嘢 2024-09-05 11:57:53

JCEF

JCEF(Chromium 嵌入式框架的 Java 包装器) 是 CEF 的 Java 包装器,而 CEF 又是 Chrome 的包装器:

这两个项目看起来都相当活跃,并且浏览器渲染比 JavaFX 的 WebView 快得多(至少使用 JDK 8u20)。

JFXPanel

还可以通过 JFXPanel 在 Swing 应用程序中使用 JavaFX WebView。

public class JavaFxWebBrowser extends JFXPanel {
    private WebView webView;
    private WebEngine webEngine;

    public JavaFxWebBrowser() {
        Platform.runLater(() -> {
            initialiseJavaFXScene();
        });
    }

    private void initialiseJavaFXScene() {
        webView = new WebView();
        webEngine = webView.getEngine();
        webEngine.load("http://stackoverflow.com");

        Scene scene = new Scene(webView);
        setScene(scene);
    }
}

JCEF

JCEF (Java Wrapper for the Chromium Embedded Framework) is a Java wrapper around CEF, which is in turn a wrapper around Chrome:

Both projects seem quite active and the browser rendering is much faster than JavaFX's WebView (at least with JDK 8u20).

JFXPanel

It is also possible to use the JavaFX WebView in a Swing application via the JFXPanel.

public class JavaFxWebBrowser extends JFXPanel {
    private WebView webView;
    private WebEngine webEngine;

    public JavaFxWebBrowser() {
        Platform.runLater(() -> {
            initialiseJavaFXScene();
        });
    }

    private void initialiseJavaFXScene() {
        webView = new WebView();
        webEngine = webView.getEngine();
        webEngine.load("http://stackoverflow.com");

        Scene scene = new Scene(webView);
        setScene(scene);
    }
}
梦行七里 2024-09-05 11:57:53

如果可以选择 SWT,则可以使用 SWT 浏览器小部件,这将使用特定于平台的浏览器(例如 Mozilla、Webkit、IE)来实际显示内容。看一下 这篇 Eclipse 文章 了解概述。

如果您不想使用 SWT,那么我推荐 JavaXPCOM。这允许您将 Gecko 嵌入到 Java 应用程序中。

If SWT is an option, you can use the SWT Browser widget, this will use a platform-specific browser (e.g. Mozilla, Webkit, IE) to actually display the content. Have a look at this Eclipse article for an overview.

If you don't want to use SWT, then I recommend JavaXPCOM. This allows you to embed Gecko in a Java application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文