我在 Swing JEditorPane 中显示 HTML 内容。要更改 HTML 的默认外观,我正在使用 CSS 样式表。这很好用。我的问题只是 JEditorPane 不支持完整的 CSS 规范。是否有 JEditorPane 支持的 CSS 功能列表?
3 回答
Java 在 HTML/CSS 支持方面的记录相对较差。多年来,trashgod 强调的文档中的评论一直很有希望得到改进。大约在 JavaFX 发布的时候,有人谈到官方的JWebPane,它允许 Java 开发人员访问 webkit 引擎,就像在 Safari 和 Chrome 中使用的那样。然而,它从未实现。
我能提供的唯一建议是查看 Java 的替代 HTML/CSS 渲染。我经常推荐的一个是xhtmlrenderer项目。开发速度已经放缓,因为它通常会维护现有版本并偶尔进行错误修复。它以 CSS2.1 为目标,这通常绰绰有余;虽然当标准最终确定时它可能会进入 CSS。
查看来自 OpenJava JDK 的 CSS.java 源代码,我发现了这个:
将一组 CSS 属性定义为类型安全的枚举。HTML 视图实现使用 CSS 属性来确定它们将如何呈现。这也定义了在 CSS/HTML/StyleConstants 之间映射的方法。任何速记属性,例如字体,都映射到内在属性。
下面描述了渲染引擎支持的 CSS 属性:
- 字体系列
- 字体样式
- 字体大小(支持相对单位)
- 字体粗细
- 字体
- 颜色
- 背景色(透明除外)
- 背景图片
- 背景重复
- 背景位置
- 背景
- 背景重复
- 文本装饰(闪烁和上划线除外)
- 垂直对齐(仅 sup 和 super)
- 文本对齐(对齐被视为中心)
- 边距顶部
- 右边距
- 边距底部
- 左边距
- 利润
- 填充顶部
- 填充权
- 填充底部
- 向左填充
- 边框样式(仅支持 inset、outset 和 none)
- 列表样式类型
- 列表样式位置
以下是建模的,但当前未渲染。
- 字体变体
- 背景附件(背景总是被视为滚动)
- 字间距
- 字母间距
- 文本缩进
- 文本转换
- 线高
- border-top-width (用于指示是否应使用边框)
- 右边框宽度
- 边框底部宽度
- 左边框宽度
- 边框宽度
- 边框顶部
- 右边界
- 边框底部
- 左边框
- 边界
- 宽度
- 高度
- 漂浮
- 清除
- 展示
- 空白
- 列表式
JEditorPane 非常有限。如果您想要正确的 HTML 显示,您最好集成一个本机 Web 浏览器。
检查像 DJ Native Swing 项目这样的项目:http: //djproject.sourceforge.net/ns