StyleConstants文本背景,对齐不一起工作

时间:2013-07-08 14:34:46

标签: java swing background alignment jtextpane

考虑代码,

问题#1

StyledDocument doc=textPane.getStyledDocument();
SimpleAttributeSet attrib=new SimpleAttributeSet();
attrib.addAttribute(StyleConstants.CharacterConstants.Alignment,StyleConstants.ALIGN_RIGHT);
doc.insertString(0,"This is sample text",attrib);

为什么我无法进行对齐?为什么我能够通过这样做得到它

doc.setParagraphAttributes(0,doc.getLength(),attrib,false);

问题#2

attrib.addAttribute(StyleConstants.ColorConstants.Background,Color.LIGHT_GRAY);
doc.setParagraphAttributes(0,doc.getLength(),attrib,false);

为什么我无法获得背景颜色?为什么我能够通过这样做得到它

doc.insertString(0,"This is sample text",attrib);

问题#3

我什么时候可以一起工作,即带有背景和右对齐的文字,除非使用这种方式,

doc.insertString(0,"This is sample text",attrib);
doc.setParagraphAttributes(0,doc.getLength(),attrib,false);

1 个答案:

答案 0 :(得分:3)

问题在于混合段落和文本属性。有两组属性字符属性 - 字体,字体大小,字体颜色等,以及段落属性,如对齐,缩进,行间距,制表位等。

将组应用于不同级别的层次结构(Document结构级别)。字符属性应用于叶子(文本元素),但段落属性应用于叶子的父项(段落元素)。

所以StyledDocument有2个方法setCharacterAttributessetParagrapphAttributes将属性应用到适当的级别。

因此,当您插入字符串属性应用于叶子时,只有字符属性才有意义。