如何解决JTextPane中的行距不呈现
我正在一个需要简单HTML编辑器的项目(对逻辑教科书的软件支持)中。我不能使用JavaFX HTMLEditor,因为它不支持上标/下标,并且因为它强制使用其工具栏。所以我一直在将JTextPane与SwingNode一起使用。这已经达到了行距。下面的代码是我的问题的精简版本:每条注释行都可用于设置段落格式。但是没有注释的设置行距就没有。如print语句所示,段落属性的确设置了。问题在于间距不会呈现(并且在基础文档中,HTML段落标记没有更改,其他格式设置命令也没有更改。)
public class LineSpaceTest extends JFrame {
JTextPane pane = new JTextPane();
LineSpaceTest() {
pane.setContentType("text/html");
getContentPane().add((pane));
MutableAttributeSet mutableAttributeSet = new SimpleAttributeSet();
// StyleConstants.setLeftIndent(mutableAttributeSet,36f);
// StyleConstants.setRightIndent(mutableAttributeSet,35.0f);
// StyleConstants.setSpaceAbove(mutableAttributeSet,20.0f);
// StyleConstants.setSpaceBelow(mutableAttributeSet,20.0f);
// StyleConstants.setFirstLineIndent(mutableAttributeSet,36.0f);
// StyleConstants.setAlignment(mutableAttributeSet,StyleConstants.ALIGN_CENTER);
StyleConstants.setLineSpacing(mutableAttributeSet,2f);
HTMLDocument doc = (HTMLDocument) pane.getDocument();
doc.setParagraphAttributes(0,doc.getLength(),mutableAttributeSet,false);
System.out.println(StyleConstants.getLineSpacing(doc.getParagraphElement(0).getAttributes()));
this.setMinimumSize(new Dimension(500,300));
setVisible(true);
}
public static void main(String[] args) {
new LineSpaceTest();
}
}
我在Java 8和Java 14中都遇到问题。这里How to set the line spacing in a JtextPane?有一个相关问题。并且似乎已在1.4.0_02 https://bugs.openjdk.java.net/browse/JDK-4242645版中修复了一个相关的错误。据我所知,提出的解决方案不能解决,而只能提出为什么对我不起作用的问题。当然,我是Java新手(这是我的第一篇StackOverflow文章),因此我可能会缺少一些简单的东西。 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。