我遇到了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);
答案 0 :(得分:2)
那是因为最后一段的属性。它具有默认属性,默认字体大小为12.要修复尝试将字符属性应用于最后一个\ n char。
StyledDocument doc=(StyledDocument)pane.getDocument();
doc.setCharacterAttributes(0, doc.getLength()+1, attrs, false);
是。长度+ 1包括文档末尾之后的最后一个字符。