我正在编写一个 Java 应用程序,需要在应用程序内使用 Web 浏览器。
我见过一些应用程序这样做,例如在同一应用程序中单击左侧面板中的提要并打开右侧面板中的链接时的 RSS 阅读器,我想实现类似的功能。
用java可以实现这个功能吗? Java API 中是否包含任何库?我需要外部库吗?有什么信息吗? IE、火狐、Chrome、Opera?我应该使用什么?
提前致谢
最佳答案
每个人都在避免的明显一个是 JEditorPane,它正处于 Swing 状态。它是一头 pig 并且非常有限,但对于某些类型的 HTML 渲染来说它还可以。
我用它来完成更简单的工作。
正如其他链接中提到的,Lobo 浏览器是另一种选择。其中的 cobra 东西非常好,并且比 JEditorPane 处理更多的页面。我发现它可以完成我所有的中等工作,但其设计中有一些令人沮丧的不可扩展的部分。我将它用于我的帮助系统和一些非 AJAX 繁重的 Web 工作。
对于像谷歌地图这样的东西,以及那些重型 AJAX 风格的 Web 应用程序,正如另一张海报和其他问题回复提到的那样,您几乎只能使用 DJ Native。由于它在幕后支持真正的浏览器,因此它可以处理任何网站。唯一的缺点是您失去了对其正在执行的操作的一定程度的控制,因为您必须通过 Java 脚本调用它并通过类似的机制取回事件。
举个例子,任何理智的人都不会需要,我有一些应用程序可以将 Swing 控件(报告等)直接动态渲染到网页中。在 JEditorPane 中,这很令人困惑,但也是可能的。在 Cobra 中,这几乎很简单,但有一些私有(private)或 final方法需要解决方法。在 DJ Native 中,如果不提前生成图像并通过 URL(本地或远程)使其可用,这是不可能的。
所以这一切都取决于您的需求。对于免费来说,没有完美的解决方案。
关于java - 在 Java 中的 JFrame/JPanel/JComponent 中添加 Web 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1894903/