如果您使用的是 Swing,则可以嵌入 JavaFX WebView。
1)应实现将JComponent接口放入可滚动窗格中。
为了将WebView添加到Swing中,您需要将其添加到JFXPanel,这是一个JComponent。为了使WebView填充完整的JFXPanel,我使用了一个AnchorPane,如下所示:
final AnchorPane anchorPane = new AnchorPane();
WebView webBrowser = new WebView();
//Set Layout Constraint
AnchorPane.setTopAnchor(webBrowser, 0.0);
AnchorPane.setBottomAnchor(webBrowser, 0.0);
AnchorPane.setLeftAnchor(webBrowser, 0.0);
AnchorPane.setRightAnchor(webBrowser, 0.0);
//Add WebView to AnchorPane
anchorPane.getChildren().add(webBrowser);
//Create Scene
final Scene scene = new Scene(anchorPane);
// Obtain the webEngine to navigate
final WebEngine webEngine = webBrowser.getEngine();
webEngine.load("http://www.google.com");
_jfxPanel.setScene(scene);
每当您运行 JavaFX 代码时,请确保在 Platform.runLater() 中运行它。
2)应优选为游离溶液;开源是一个加号。
好吧,它是纯粹的Oracle java。
3)作为maven工件的可用性是一个加分项。
请参阅带有JavaFX的StackOverflow答案Maven项目(在“lib”中使用jar文件)以获取有关集成JavaFX和Maven的建议。
从Java8到JavaFX将完全集成到Java中。
Additonal Pros: -支持HTML5和JavaScript(使用webkit) -支持平台互操作性 -甚至支持与DOM交互,运行JavaScript,从Webview获得事件通知。
缺点: -需要安装JavaFX。但它自 v7u6(2012 年 8 月)起与 java 捆绑在一起。
其他经历:
我尝试了djproject,但在平台互操作性方面遇到了很多问题。在Windows上工作得很好,但只有在Linux上付出了很大的努力,我无法让它在Mac上工作。对于每个平台,您还需要构建32位和64位版本的jar。通过大量的努力和一个巨大的jar文件,您可以将所有内容合并到一个jar中。但这远非方便。
与我上面提到的JavaFX解决方案相比,DJProject是一个更大的痛苦。