问问题
185 次
1 回答
1
这个答案不完整,当我继续回来时,我将它用作记事本。
javax.swing.text.html.HTML
包含一个类Tag
,它还包含大量Tag
代表每个 HTML 标记的最终实例。
我们对这条线感兴趣;
public static final Tag STRONG = new Tag("b");
javax.swing.text.html.HTMLDocument
包含一个HashTable
tagMap
存储所有这些标签的。
我们对线条感兴趣;
tagMap.put(HTML.Tag.STRONG, ca);
ca
在哪里TagAction ca = new CharacterAction();
和;
protected void registerTag(HTML.Tag t, TagAction a) {
tagMap.put(t, a);
}
我还没有找到该包TagAction
或访问/更改HTMLEditorKit
.
我已经找到了我认为写出标签的位置(标有//here
;
javax.swing.java.text.html.HTMLWriter.java
protected void writeEmbeddedTags(AttributeSet attr) throws IOException {
// translate css attributes to html
attr = convertToHTML(attr, oConvAttr);
Enumeration names = attr.getAttributeNames();
while (names.hasMoreElements()) {
Object name = names.nextElement();
if (name instanceof HTML.Tag) {
HTML.Tag tag = (HTML.Tag)name;
if (tag == HTML.Tag.FORM || tags.contains(tag)) {
continue;
}
write('<');
write(tag.toString());//Here
Object o = attr.getAttribute(tag);
if (o != null && o instanceof AttributeSet) {
writeAttributes((AttributeSet)o);
}
write('>');
tags.addElement(tag);
tagValues.addElement(o);
}
}
}
所以看起来我们需要改变attributeSet
正在编写的文档中构建 s 的任何内容。
于 2013-08-08T12:24:35.577 回答