java如何显示带空格的选项卡?
我有一个java程序,在这个程序中,我用网格从JPanel上的文本文件中绘制每个字符(在它自己的框架中)
每个角色都有自己的框架,但当涉及到制表符时,就会出现问题。我尝试用8个空格替换所有制表符,但问题是(如上图所示)出现了不一致,因为制表符并不总是8个字符长有没有办法计算出一个标签使用了多少“空格”或其他关于如何获得与文本文件相同的布局的建议
绘图文本的代码:
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
Font font = new Font("monospaced", Font.PLAIN, 18);
g2.setColor(Color.BLACK);
g2.setFont(font);
String lines[] = LabAgentComponent.PASTE.split("\\r?\\n");
for (int i=0; i<lines.length; i++) {
for(int j=0; j<lines[i].length(); j++) {
g2.drawString(Character.toString(lines[i].charAt(j)), j * gridSize, (i+1) * gridSize);
}
}
# 1 楼答案
您可以在制表符之前检查字符串的长度
在
Al203
的情况下,这将是5。你的标签应该从8的下一个倍数开始,中间至少有一个空格这里有一个小班可以帮助你:
它输出:
我用圆点让空间更清晰
# 2 楼答案
我知道怎么做我想做的。以下是代码:
# 3 楼答案
只要用
JTextArea
和monospaced Font
就行了。不需要定制绘画JTextArea
甚至有一个方法,允许您控制给定选项卡的空格数JTextArea还有一个
read(...)
方法,可以将文件直接读入文本区域