当前位置: 首页 > 知识库问答 >
问题:

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

长孙阳州
2023-03-14

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

我试了很多次,它起作用了,但是换行符被忽略了。

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

我创建了一个新的图形并设置了字体。然后我把写在编辑器窗口中的文本。iPosX

你们有什么想法,我可以打印整个字符串考虑到行中断?

提前感谢!

共有1个答案

谭绍晖
2023-03-14

显然,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));
    }
}

希望有帮助!

 类似资料:
  • 给定Java代码: 有没有一种方法可以删除我们在“//insert here”中插入一些内容的新行,而不修改其余代码,这样输出将从:

  • 问题内容: 有谁知道如何在Java中检测可打印字符? 一段时间(试用/错误)后,我得到了这种方法: 我通过KeyListener获取输入,然后按Ctr-“键”打印一个正方形。有了这个功能似乎还足够。 我在这里缺少一些字符吗? 问题答案: 看来这是“字体”的独立方式。

  • 问题内容: 我有一个Pandas DataFrame,其中的一列中包含字符串元素,而这些字符串元素包含我想实际打印的新行。但是它们只是出现在输出中。 也就是说,我要打印此: 但这就是我得到的: 我该如何完成我想要的?我可以使用DataFrame,还是必须恢复为手动打印填充的列一次一次? 这是我到目前为止的内容: 问题答案: 从pandas.DataFrame文档中: 具有标注轴(行和列)的二维大小

  • 问题内容: 如果您有一个带有unicode字符的字符串,则可以打印它,并获得未转义的版本: 但是如果我们有一个包含上面字符串的列表并打印出来: 您仍然会获得转义的字符序列。您如何才能使列表的内容不被转义,这可能吗?像这样: 另外,如果字符串是类型,那么您如何与上述相同? 问题答案: 打印字符串时,将获得对象方法的输出- 在这种情况下,该字符串不带引号。列表的方法不同,它创建一个包含打开和关闭的字符

  • 问题内容: 我正在编写一个程序,该程序将以字符串形式输出唯一字符(通过扫描仪输入)。我创建了一个方法来尝试实现此目的,但我一直在获取不重复的字符,而不是字符串中唯一的一个(或多个)字符。我只想要唯一的字母。 这是我的代码: 这是上面代码的示例输出: 预期的输出将是: 问题答案: 根据所需的输出,当以后重复时,必须替换最初已经添加的字符,因此:

  • 我希望打印字符串中的特定行。 字符串: 我只想要第二排和第三排。 我该怎么做呢?