我尝试按照我想要的格式创建一个大的String
并使用PrinterJob
类打印它。这是String的代码:
String bigtext = "The name\n" + "some another text";
Graphics2D's_object.drawString(bigtext, 50, 50);
但它在一行中打印为"The name some another text"
,"\n"
不起作用,而我想在另一行打印"some another text"
。
P.S。我尝试在打印机中打印bigtext。
已解决:以下是解决方案:Problems with newline in Graphics2D.drawString。 (经过长时间的麻烦:))
答案 0 :(得分:1)
换行符\n
不是某些操作系统中使用\r\n
的行分隔符。另外,我建议使用StringBuilder
而不是+
修改:您也可以使用System.getProperty("line.separator");
。
答案 1 :(得分:1)
昨天被问到类似的question,这有助于:
您遇到的问题是因为“行分隔符”是您难以编码的。最好将System的行分隔符设置为:
System.getProperty("line.separator");
这样你的代码就像这样:
String lineseparator=System.getProperty("line.separator");
// I'd suggest putting this as a class variable, so that it only gets called once
// rather than everytime you call the addLine() method
String bigtext = "The name" + lineseparator + "some another text";
//If you wanted an empty line in between them, then add the lineseparator twice
String bigtext = "The name" + lineseparator + lineseparator + "some another text";
答案 2 :(得分:1)
似乎大多数人都不明白这个问题。我尝试过PrinterJob,它对我来说也不起作用。
我找到了一个解决方案,但未经过验证: