Java SE中g.drawString中的换行符和制表符间距

时间:2012-01-01 11:54:19

标签: java drawstring

我分别为这些Line break& amp;标签间距。

行间距:

private void drawString(Graphics g, String text, int x, int y) {
    for (String line : text.split("\n")) {
        g.drawString(line, x, y += g.getFontMetrics().getHeight());
    }
} 

标签间距:

private void drawtabString(Graphics g, String text, int x, int y) {
    for (String line : text.split("\t")) {
        g.drawString(line, x += g.getFontMetrics().getHeight(), y);
    }
}

如何组合这些代码?

我想要g.drawString("Line 1\t:Words\t\nLine 2\t:\tWords", x, y);的输出: 等;

Line 1 [tab space]: [tabspace] Words
Line 2 [tab space]: [tabspace] Words

1 个答案:

答案 0 :(得分:1)

private void drawString(Graphics g, String text, int x, int y) {
    for (String line : text.split("\n")) {
        drawtabString(g, line, x, y += g.getFontMetrics().getHeight());
    }
} 

注意:在方法调用中嵌入y变量的修改会让人感到困惑。我会把它分成2个指令,使代码更明显:

drawtabString(g, line, x, y);
y += g.getFontMetrics().getHeight();

PS:你确定你不想简单地使用JTextArea吗?