JAVA - 打印带有换行符的字符串

JAVA - Print String with line breaks

我正在开发文本编辑器,我的下一个目标是在打印机(不是系统输出)上打印书面文本。

我试了很多次都成功了,但是换行符被忽略了。

Graphics pg = prjob.getGraphics();
            pg.setFont(textFont);
            pg.drawString(window.getText(), iPosX, iPosY);
            pg.dispose();

我创建了一个新图形并设置了字体。 然后我把写进我的编辑器的文本 window。 iPosX & iPosY 是纸张的尺寸。

你们有什么想法我可以考虑换行符打印整个字符串吗?

非常感谢!

显然,drawString() 方法不处理换行符。您可以通过在换行符处拆分字符串并在新行上分别打印每一行来解决此问题。您可以创建一个自定义方法来像这样使用:

private void drawString(Graphics g, String text, int x, int y) {
    String[] splittedText = text.split("\n");
    for (int i = 0; i < splittedText.length; i++) {
        String line = splittedText[i];
        g.drawString(line, x, y + (g.getFontMetrics().getHeight() * i));
    }
}

希望对您有所帮助!