2012-01-01 4 views
0

Я получил кодировку отдельно для этих разрывов строк. & Вкладка «Интервал».Разрыв линии и вкладка в g.drawString в Java SE

Line Spacing:

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()); 
    } 
} 

Tab Spacing:

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
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?

+0

Большое вам спасибо. Это сработало для меня. – ArMEd