JTextPane 最后一行字体较小

JTextPane last line with smaller font size

我对 JTextPane 有疑问。如果我在最后一行向 JTextPane 写了一些东西,那么最后一行的大小与前面其他行的大小不同。按下 ENTER 后,行向上移动一点。我发现,这种行为只是为了防止字体大小小于 12。最后一行不能小于某个大小。你知道如何消除这种奇怪的行为吗?

有我的SSCCE:

JFrame frame = new JFrame();
frame.setSize(350, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTextPane pane = new JTextPane();

MutableAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setFontSize(attrs, 11);
pane.setCharacterAttributes(attrs, false);

frame.add(pane);
frame.setVisible(true);

那是因为最后一段的属性。它具有默认属性,默认字体大小为 12。要修复,请尝试将字符属性应用于最后一个 \n 字符。

StyledDocument doc=(StyledDocument)pane.getDocument();
doc.setCharacterAttributes(0, doc.getLength()+1, attrs, false);

是的。长度+1 以包含文档末尾之后的最后一个字符。