你知道哪些库/方法可以在 Swing 中做一些基本的 HTML 表示?你能评论一下你的经历吗?
7 回答
一个好的纯 Java 解决方案是JWebEngine。它使 HTML 4 非常好。
我已经有一段时间没有尝试过了,但是快速的谷歌搜索显示了一些可能性:
您是要在小程序或应用程序中执行此操作吗?如果它是一个应用程序(或签名的小程序),您可能会在您的应用程序中实例化 IE 或 Firefox。 Webbrenderer充当了一个 Swing 包装器。
Swing 有一个名为BasicHTML的内置组件。我从未使用过它,但我认为它对于基本的东西应该足够了。
许多 Swing 控件(如 JLabel)可以呈现基本的 HTML 内容。JEditorPane可用于显示 HTML 页面。但是,这些控件仅限于HTML 3.2支持。
为了获得更丰富的体验,我会使用JDesktop 集成组件。
JDIC 为 Java 应用程序提供对本地桌面提供的功能和设施的访问。它由一组 Java 包和工具组成。JDIC 支持多种功能,例如 嵌入本机浏览器、启动桌面应用程序、在桌面上创建托盘图标、注册文件类型关联、创建 JNLP 安装程序包等。
这在历史上一直是 Java、IMO 的主要弱点。显示有限标记的方法有很多种,但提供全功能 HTML 功能的方法很少。前面提到的 JDIC 组件是一种选择,但是它被认为是“重量级”组件,因此并不总是与 Swing 应用程序很好地集成。
然而,我希望基于 Webkit 的新JWebPane项目将提供更高级的功能,而不会出现我们过去必须处理的所有问题。当然,还有几个商业选项(IceBrowser就是一个很好的例子)。
我刚刚使用SwingBox显示了一个非常简单的 HTML 页面,效果很好。
该项目包括一个简单的演示应用程序,该应用程序将其BrowserPane
组件与进行比较JEditorPane
,在复杂页面上显示出更好的结果(但仍无法与现代 Web 浏览器相比)。
我遇到的唯一问题是包装中不需要的滚动条JScrollPane
。演示应用程序似乎有同样的问题。我不知道问题出在哪里。我正在使用 1.0 版。
这里有一个代码片段来展示使用该组件是多么简单:
BrowserPane browserPane = new BrowserPane();
JScrollPane scrollPane = new JScrollPane(browserPane);
someContainer.add(scrollPane);
browserPane.setText("<html><b>Some HTML here</b></html>");
// or...
browserPane.setPage(new URL("http://en.wikipedia.org"));