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 (将#修改为@)