- 所有已实现的接口:
Serializable,AbstractDocument.AttributeContext
toString 方法返回 CSS 值的字符串表示形式。
HTML 视图实现获取其属性的主要入口点是 getViewAttributes 方法。这应该被实现以建立用于将属性与视图相关联的所需策略。每个 HTMLEditorKit(即每个关联的 JEditorPane)都可以有自己的 StyleSheet,但默认情况下,所有 HTMLEditorKit 实例将共享一个表单。 HTMLDocument 实例也可以有一个 StyleSheet,它包含特定于文档的 CSS 规范。
为了让视图存储更少的状态并因此更轻量级,样式表可以充当绘制器的工厂来处理一些渲染任务。这允许实现确定他们想要缓存的内容,并可能在选择器对多个视图通用的级别进行共享。由于 StyleSheet 可由多个文档的视图使用,并且通常 HTML 属性不会影响正在使用的选择器,因此共享的潜力很大。
规则存储为命名样式,存储其他信息以将元素的上下文快速转换为规则。以下代码片段将显示命名样式,因此包含 CSS 规则。
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
public class ShowStyles {
public static void main(String[] args) {
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
StyleSheet styles = doc.getStyleSheet();
Enumeration rules = styles.getStyleNames();
while (rules.hasMoreElements()) {
String name = (String) rules.nextElement();
Style rule = styles.getStyle(name);
System.out.println(rule.toString());
}
System.exit(0);
}
}
CSS 样式何时应覆盖元素定义的视觉属性的语义没有明确定义。例如,html <body bgcolor=red> 使正文具有红色背景。但是,如果 html 文件还包含 CSS 规则 body { background: blue },那么主体的背景颜色应该是什么颜色就不太清楚了。当前的实现赋予元素中定义的视觉属性最高的优先级,即它们总是在任何样式之前被检查。因此,在前面的示例中,背景颜色为红色,因为 body 元素将背景颜色定义为红色。
正如已经提到的,它支持 CSS。我们不支持完整的 CSS 规范。请参阅 CSS 类的 javadoc 以查看我们支持的属性。我们目前不支持的两个主要的 CSS 解析相关概念是伪选择器,例如 A:link { color: red } 和 important 修饰符。
- 实现注意事项:
- 此实现目前尚未完成。它可以替换为完整的替代实现。此类的未来版本将提供更好的 CSS 支持。
-
内部类总结
内部类修饰符和类型类描述static final class执行一些 CSS 格式化职责的类。static final class执行 CSS 列表格式化的一些职责的类。在类 javax.swing.text.StyleContext 中声明的嵌套类/接口
StyleContext.NamedStyle, StyleContext.SmallAttributeSet -
字段摘要
在类 javax.swing.text.StyleContext 中声明的字段
DEFAULT_STYLE -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述addAttribute(AttributeSet old, Object key, Object value) 向给定集合添加一个属性,并返回新的代表集合。addAttributes(AttributeSet old, AttributeSet attr) 向元素添加一组属性。voidaddCSSAttribute(MutableAttributeSet attr, CSS.Attribute key, String value) 将 CSS 属性添加到给定的集合。booleanaddCSSAttributeFromHTML(MutableAttributeSet attr, CSS.Attribute key, String value) 将 CSS 属性添加到给定的集合。void向工作表添加一组规则。void将样式表ss中的规则添加到接收者的规则中。protected MutableAttributeSet创建大量属性,这些属性应该以空间换取时间。protected StyleContext.SmallAttributeSet创建一组可以共享的紧凑属性。获取一组属性并将其转换为背景颜色规范。getBase()返回基地。获取框格式化程序以用于给定的 CSS 属性集。getDeclaration(String decl) 将 CSS 声明转换为表示 CSS 声明的 AttributeSet。获取用于给定属性集的字体。获取一组属性并将其转换为前景颜色规范。static intgetIndexOfSize(float pt) 返回 HTML/CSS 大小模型的索引。获取列表格式化程序以用于给定的 CSS 属性集。floatgetPointSize(int index) 给定大小索引,返回磅值。floatgetPointSize(String size) 给定一个字符串,例如“+2”、“-2”或“2”,返回一个磅值。获取与以字符串形式给定的选择器最匹配的规则。获取用于呈现给定类型的 HTML 标记的样式。返回链接样式表的数组。获取一组属性以在视图中用于显示。voidimportStyleSheet(URL url) 从url导入样式表。void加载一组根据 CSS1 语法指定的规则。removeAttribute(AttributeSet old, Object key) 从集合中移除一个属性。removeAttributes(AttributeSet old, Enumeration<?> names) 删除元素的一组属性。removeAttributes(AttributeSet old, AttributeSet attrs) 删除一组属性。voidremoveStyle(String nm) 删除以前添加到文档中的命名样式。void从接收器的样式表中删除样式表ss。void设置基础。voidsetBaseFontSize(int sz) 设置基本字体大小,有效值介于 1 和 7 之间。voidsetBaseFontSize(String size) 根据传入的字符串设置基本字体大小。stringToColor(String string) 将颜色字符串(例如“RED”或“#NNNNNN”)转换为颜色。translateHTMLToCSS(AttributeSet htmlAttrSet) 将一组 HTML 属性转换为等效的一组 CSS 属性。在类 javax.swing.text.StyleContext 中声明的方法
addChangeListener, addStyle, getChangeListeners, getCompressionThreshold, getDefaultStyleContext, getEmptySet, getFont, getFontMetrics, getStaticAttribute, getStaticAttributeKey, getStyle, getStyleNames, readAttributes, readAttributeSet, reclaim, registerStaticAttributeKey, removeChangeListener, toString, writeAttributes, writeAttributeSet
-
构造方法详细信息
-
StyleSheet
public StyleSheet()构建样式表
-
-
方法详情
-
getRule
获取用于呈现给定类型的 HTML 标记的样式。给定的元素表示标签,可用于确定如果嵌套在元素内属性将不同的情况的嵌套。- 参数:
t- 转换为视觉属性的类型e- 代表标签的元素;该元素可用于确定如果嵌套在其他元素内属性将不同的情况的嵌套- 返回:
- 用于呈现标签的 CSS 属性集
-
getRule
获取与以字符串形式给定的选择器最匹配的规则。其中selector是元素名称的空格分隔字符串。例如,selector可能是“html body tr td”返回的 Style 的属性将随着规则的添加和删除而改变。也就是说,如果您请求一个带有选择器“表 p”的规则,并且添加了一个带有“p”选择器的新规则,则返回的样式将包括来自规则“p”的新属性。
- 参数:
selector- 元素名称的空格分隔字符串。- 返回:
- 最匹配选择器的规则。
-
addRule
向工作表添加一组规则。规则应采用有效的 CSS 格式。通常这将作为解析 <style> 标签的结果被调用。- 参数:
rule- 一套规则
-
getDeclaration
将 CSS 声明转换为表示 CSS 声明的 AttributeSet。通常这会在遇到 HTML 样式属性时被调用。- 参数:
decl- CSS 声明- 返回:
- 表示 CSS 声明的一组属性。
-
loadRules
加载一组根据 CSS1 语法指定的规则。如果与现有规则发生冲突,则新指定的规则将获胜。- 参数:
in- 从中读取 CSS 语法的流ref- 参考网址。该值表示流的位置,可能为空。流中指定的所有相对 URL 都将基于此参数。- 抛出:
IOException- 如果发生 I/O 错误。
-
getViewAttributes
获取一组属性以在视图中用于显示。这基本上是一组可用于 View.getAttributes 的属性。- 参数:
v- 一个视图- 返回:
- 属性的
-
removeStyle
删除以前添加到文档中的命名样式。- 重写:
removeStyle在类StyleContext中- 参数:
nm- 要删除的样式的名称
-
addStyleSheet
将样式表ss中的规则添加到接收者的规则中。ss's规则将覆盖任何以前添加的样式表的规则。添加的样式表永远不会覆盖接收样式表的规则。- 参数:
ss- 样式表- 自从:
- 1.3
-
removeStyleSheet
从接收器的样式表中删除样式表ss。- 参数:
ss- 样式表- 自从:
- 1.3
-
getStyleSheets
返回链接样式表的数组。如果没有链接的样式表,将返回 null。- 返回:
- 一组样式表。
- 自从:
- 1.3
-
importStyleSheet
从url导入样式表。生成的规则直接添加到接收方。如果您不希望规则成为接收器的一部分,请创建一个新的 StyleSheet 并使用 addStyleSheet 将其链接进来。- 参数:
url- 一个网址- 自从:
- 1.3
-
setBase
设置基础。所有相对的 import 语句都将相对于base。- 参数:
base- 一个基地。- 自从:
- 1.3
-
getBase
返回基地。- 返回:
- 基地。
- 自从:
- 1.3
-
addCSSAttribute
将 CSS 属性添加到给定的集合。- 参数:
attr- 一组属性key- 一个 CSS 属性value- 一个 HTML 属性值- 自从:
- 1.3
-
addCSSAttributeFromHTML
将 CSS 属性添加到给定的集合。- 参数:
attr- 一组属性key- 一个 CSS 属性value- 一个 HTML 属性值- 返回:
true如果 HTML 属性value可以转换为 CSS 属性,否则为 false。- 自从:
- 1.3
-
translateHTMLToCSS
将一组 HTML 属性转换为等效的一组 CSS 属性。- 参数:
htmlAttrSet- 包含 HTML 属性的 AttributeSet。- 返回:
- CSS 属性集。
-
addAttribute
向给定集合添加一个属性,并返回新的代表集合。这被重新实现以在转发到超类行为之前将 StyleConstant 属性转换为 CSS。 StyleConstants 属性没有相应的 CSS 条目,StyleConstants 属性已存储(但可能未使用)。- 指定者:
addAttribute在接口AbstractDocument.AttributeContext中- 重写:
addAttribute在类StyleContext中- 参数:
old- 旧属性集key- 非空属性键value- 属性值- 返回:
- 更新后的属性集
- 参见:
-
addAttributes
向元素添加一组属性。如果这些属性中的任何一个是 StyleConstants 属性,它们将在转发到超类行为之前转换为 CSS。- 指定者:
addAttributes在接口AbstractDocument.AttributeContext中- 重写:
addAttributes在类StyleContext中- 参数:
old- 旧属性集attr- 要添加的属性- 返回:
- 更新后的属性集
- 参见:
-
removeAttribute
从集合中移除一个属性。如果该属性是 StyleConstants 属性,请求将在转发到超类行为之前转换为 CSS 属性。- 指定者:
removeAttribute在接口AbstractDocument.AttributeContext中- 重写:
removeAttribute在类StyleContext中- 参数:
old- 旧的属性集key- 非空属性名称- 返回:
- 更新后的属性集
- 参见:
-
removeAttributes
删除元素的一组属性。如果任何属性是 StyleConstants 属性,请求将在转发到超类行为之前转换为 CSS 属性。- 指定者:
removeAttributes在接口AbstractDocument.AttributeContext中- 重写:
removeAttributes在类StyleContext中- 参数:
old- 旧属性集names- 属性名称- 返回:
- 更新后的属性集
- 参见:
-
removeAttributes
删除一组属性。如果任何属性是 StyleConstants 属性,请求将在转发到超类行为之前转换为 CSS 属性。- 指定者:
removeAttributes在接口AbstractDocument.AttributeContext中- 重写:
removeAttributes在类StyleContext中- 参数:
old- 旧属性集attrs- 属性- 返回:
- 更新后的属性集
- 参见:
-
createSmallAttributeSet
创建一组可以共享的紧凑属性。这是想要改变 SmallAttributeSet 行为的子类的钩子。这可以重新实现以返回提供某种属性转换的 AttributeSet。- 重写:
createSmallAttributeSet在类StyleContext中- 参数:
a- 以紧凑形式表示的属性集。- 返回:
- 可能共享的一组紧凑的属性
-
createLargeAttributeSet
创建大量属性,这些属性应该以空间换取时间。此集不会共享。这是一个挂钩,用于希望更改较大属性存储格式(默认情况下为 SimpleAttributeSet)的行为的子类。这可以重新实现以返回提供某种属性转换的 MutableAttributeSet。- 重写:
createLargeAttributeSet在类StyleContext中- 参数:
a- 以较大形式表示的属性集。- 返回:
- 应该以空间换取时间的大量属性
-
getFont
获取用于给定属性集的字体。- 重写:
getFont在类StyleContext中- 参数:
a- 属性集- 返回:
- 字体
-
getForeground
获取一组属性并将其转换为前景颜色规范。这可能用于指定更亮、更多色调等内容。- 重写:
getForeground在类StyleContext中- 参数:
a- 属性集- 返回:
- 颜色
-
getBackground
获取一组属性并将其转换为背景颜色规范。这可能用于指定更亮、更多色调等内容。- 重写:
getBackground在类StyleContext中- 参数:
a- 属性集- 返回:
- 颜色
-
getBoxPainter
获取框格式化程序以用于给定的 CSS 属性集。- 参数:
a- 一组 CSS 属性- 返回:
- 盒子格式化程序。
-
getListPainter
获取列表格式化程序以用于给定的 CSS 属性集。- 参数:
a- 一组 CSS 属性- 返回:
- 列表格式化程序。
-
setBaseFontSize
public void setBaseFontSize(int sz) 设置基本字体大小,有效值介于 1 和 7 之间。- 参数:
sz- 字体大小。
-
setBaseFontSize
根据传入的字符串设置基本字体大小。该字符串可以标识特定字体大小(合法值介于 1 和 7 之间),也可以标识相对字体大小,例如 +1 或 -2。- 参数:
size- 字体大小。
-
getIndexOfSize
public static int getIndexOfSize(float pt) 返回 HTML/CSS 大小模型的索引。- 参数:
pt- 点的大小- 返回:
- HTML/CSS 大小模型的索引。
-
getPointSize
public float getPointSize(int index) 给定大小索引,返回磅值。- 参数:
index- 大小索引- 返回:
- 点大小值。
-
getPointSize
给定一个字符串,例如“+2”、“-2”或“2”,返回一个磅值。- 参数:
size- 描述字体大小的 CSS 字符串- 返回:
- 点大小值。
-
stringToColor
将颜色字符串(例如“RED”或“#NNNNNN”)转换为颜色。注意:这只会转换 HTML3.2 颜色字符串或长度为 7 的字符串;否则,它将返回 null。- 参数:
string- 颜色字符串,例如“RED”或“#NNNNNN”- 返回:
- 颜色
-