Разрыв строки и интервал табуляции в g.drawString в Java SE - PullRequest
0 голосов
/ 01 января 2012

Я получил кодировку отдельно для этих разрывов строк и интервалов табуляции.

Межстрочный интервал:

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 Ответ

1 голос
/ 01 января 2012
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?

...