我无法从JTextPane
完全删除行间距和字符间距。这甚至可能吗?
JTextPane
,据我所知,它只能摆脱垂直间隙(线间距)。
SimpleAttributeSet sas = new SimpleAttributeSet();
StyleConstants.setLineSpacing(sas , 0.0f);
textPane.setParagraphAttributes(sas , false);
我目前已将JTextPane
的字体设置为" Consolas",font-size 9.我正在尝试正确显示某些ASCII艺术(就像{{3}一样做到了。)
这就是我的GUI JTextPane
中的样子,以及我希望它看起来如何:
DAMN NFO VIEWER显示相同的ASCII艺术(正确方式)。
我尝试使用DAMN NFO VIEWER使用的相同字体和大小,但这并没有消除差距,所以我想我必须做一些其他更改。任何建议表示赞赏。
修改
以下是我尝试应用SimpleAttributeSet()
的方式,也许我做得不对:
nfoFileTextPane = new javax.swing.JTextPane();
StyledDocument doc = nfoFileTextPane.getStyledDocument();
Element e = doc.getParagraphElement(0);
MutableAttributeSet mas = new SimpleAttributeSet();
StyleConstants.setLineSpacing(mas, -0.2f);
StyleConstants.setSpaceAbove(mas, -0.2f);
StyleConstants.setSpaceBelow(mas, -0.2f);
//0-1000 test
doc.setParagraphAttributes(0, 1000, mas, true);
答案 0 :(得分:0)
文本窗格可能无法为您提供所需的控制级别。即使您将字符之间的间距调整为负值,您可能会发现需要调整不同字符的不同字符以允许字距调整等。如果您使用图像而不是自己渲染文本,则可以获得真正精确控制位置,并将其准确放置在您需要的位置。
如果您决定这样做,我去年提出的这个问题可能会对您有所帮助:
Rendering multi-line multi-page formatted text to a BufferedImage (not in Android)
答案 1 :(得分:0)
实际上使用上面的代码正确应用了SimpleAttributeSet
。只是行间距更大,-0.2f
不足以缩小指定字体和大小的行之间的间隙。使用-1.0f
会将线条挤压在一起并使它们重叠。