如果您使用的是 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 和 Maven 的建议,请参阅 StackOverflow answer Maven project with JavaFX(在 `lib` 中带有 jar 文件)。
从 Java8 开始,JavaFX 将完全集成到 Java 中。
附加优点: - 支持 HTML5 和 JavaScript(使用 webkit) - 支持平台互操作性 - 甚至支持与 DOM 交互,运行 JavaScript,从 Webview 获取事件通知。
缺点:-JavaFX 需要安装。但自 v7u6(2012 年 8 月)以来,它与 java 捆绑在一起。
其他体验:
我尝试了 djproject,但在平台互操作性方面存在很多问题。在 Windows 上运行良好,但仅在 Linux 上付出了很大的努力,我无法让它在 Mac 上运行。对于每个平台,您还需要构建 32 位和 64 位版本的 jar。通过大量的努力和一个巨大的 jar 文件,您可以将所有内容合并到一个 jar 中。但这远非方便。
与我上面提到的 JavaFX 解决方案相比,DJProject 是一个更大的痛苦。