问题描述
我正在一个需要简单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 (将#修改为@)