java集成webkit_关于swing:在Java中嵌⼊GeckoWebKit 我想将Gecko,WebKit或另⼀个Web浏览器嵌⼊到Java中作为Swing / AWT控件。
我正在寻不同于JRex或JWebPane的东西。
真可惜JwebPane尚未见过曙光。 le/group/javaposse/browse_thread/thread/可能很有趣。
您可以使⽤JxBrowser。
它具有Swing / JavaFX组件,该组件包装了Chromium引擎,同时通过GPU提供了丰富的API和开箱即⽤的硬件加速功能。
不幸的是,⾃4.0版本以来,他们已放弃了对其他引擎(如Gecko和WebKit)的⽀持。
请注意,它不是免费的,开源项⽬除外。
例如,它被硒使⽤
所有⽤于开源信息的免费JXBrowser似乎都已从其⽹站上删除。 有⼈知道开源是否仍然免费? AS @Su
puhstar说,这是⼀个相当昂贵的产品。 他们可以随⼼所欲地收取费⽤,但是很少有开源项⽬能够负担得起4,600美元的项⽬许可费⽤(每个开发⼈员的价格为1,600美元对于开源来说没有任何意义,⽽且对于开源项⽬来说也太昂贵了 )。 不幸的是,这似乎是唯⼀适⽤于基于浏览器的严肃应⽤程序的Java组件。
对于开源和学术项⽬,JxBrowser是完全免费的。 请求评估许可证时,您只需要选择适当的选项即可:
teamdev/jxbrowser#evaluate
如果选择了SWT,则可以使⽤" SWT浏览器"窗⼝⼩部件,这将使⽤特定于平台的浏览器(例如Mozilla,Webkit,IE)来实际显⽰内容。请参阅此Eclipse⽂章以获得概述。
如果您不想使⽤SWT,则建议使⽤JavaXPCOM。这使您可以将Gecko嵌⼊Java应⽤程序中。
联合会
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();
});
}javaswing和javafx
private void initialiseJavaFXScene() {
webView = new WebView();
webEngine = Engine();
webEngine.load("stackoverflow");
Scene scene = new Scene(webView);
setScene(scene); }
}