当前位置: 首页 > 工具软件 > Gecko-Java > 使用案例 >

java 集成 webkit_关于swing:在Java中嵌入Gecko / WebKit

锺离声
2023-12-01

我想将Gecko,WebKit或另一个Web浏览器嵌入到Java中作为Swing / AWT控件。

我正在寻找不同于JRex或JWebPane的东西。

真可惜JwebPane尚未见过曙光。 groups.google.com/group/javaposse/browse_thread/thread/可能很有趣。

您可以使用JxBrowser。

它具有Swing / JavaFX组件,该组件包装了Chromium引擎,同时通过GPU提供了丰富的API和开箱即用的硬件加速功能。

不幸的是,自4.0版本以来,他们已放弃了对其他引擎(如Gecko和WebKit)的支持。

请注意,它不是免费的,开源项目除外。

例如,它被硒使用

所有用于开源信息的免费JXBrowser似乎都已从其网站上删除。 有人知道开源是否仍然免费? AS @Supuhstar说,这是一个相当昂贵的产品。 他们可以随心所欲地收取费用,但是很少有开源项目能够负担得起4,600美元的项目许可费用(每个开发人员的价格为1,600美元对于开源来说没有任何意义,而且对于开源项目来说也太昂贵了 )。 不幸的是,这似乎是唯一适用于基于浏览器的严肃应用程序的Java组件。

对于开源和学术项目,JxBrowser是完全免费的。 请求评估许可证时,您只需要选择适当的选项即可:teamdev.com/jxbrowser#evaluate

如果选择了SWT,则可以使用" SWT浏览器"窗口小部件,这将使用特定于平台的浏览器(例如Mozilla,Webkit,IE)来实际显示内容。请参阅此Eclipse文章以获得概述。

如果您不想使用SWT,则建议使用JavaXPCOM。这使您可以将Gecko嵌入Java应用程序中。

联合会

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

https://bitbucket.org/chromiumembedded/java-cef

https://bitbucket.org/chromiumembedded/cef

这两个项目似乎都很活跃,并且浏览器渲染比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);

}

}

 类似资料: