【问题标题】:StyleConstants Text Background, Alignment Not Working TogetherStyleConstants 文本背景,对齐不一起工作
【发布时间】:2013-07-05 22:41:58
【问题描述】:

考虑代码,

问题 #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);

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE
  • 谢谢。更新。希望这很清楚。
  • 这显然不是 SSCCE。
  • SSCCE的哪一部分太难理解了,你不能提供一个;-)
  • “我想我已经删除了令人困惑的部分!” 谁感到困惑?我的意思是,除了你。发布 SSCCE!

标签: java swing background alignment jtextpane


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-11-07
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2021-04-24
    • 2014-08-28
    • 2012-03-02
    • 2012-10-28
    • 2015-05-17
    相关资源
    最近更新 更多