java - 在 Java 中的 JFrame/JPanel/JComponent 中添加 Web 浏览器

标签 java swing browser

我正在编写一个 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/

相关文章:

java - Spring 数据存储库的测试类中的字段注入(inject)合法吗?

java - Swing在GridBagLayout组件中绘制1px的组件间边框线

html - 要注意的常见跨浏览器错误列表

java - 在 JFrame 的内容 Pane 中重新排列 JPanel?

java - 旋转时获取屏幕上矩形角的点

java - 浏览 JavaScript

firefox - IE8和Firefox3的盒子模型有什么区别吗?

java - 使用 jdbc 连接到远程数据库,验证凭据

java - 关于应用程序级上下文缓存的设计思路(类似于Web中的 session /应用程序上下文)

java - 如何用java获取网页的源代码?(如何处理延迟加载?)