我想在文本区逐行设置不同的制表符大小。有人能给我一个解决方案吗?有可能吗?我想,在文本区域键入文本后,当我按下format按钮时,想要为每行添加一个制表符。行1-无制表符行2-1制表符行3-2制表符行4-3制表符
发布于 2013-09-12 23:28:10
你看过API了吗?API有一个告诉你的方法:
我将让您阅读API来查找方法。
然后,您将创建一个循环并获取每行的起始偏移量。然后使用:
textArea.getDocument().insertString(...);为每行插入适当数量的制表符"\t“。
发布于 2013-09-12 23:30:20
我认为默认选项卡大小/长度取决于操作系统/系统设置。我相信\t在windows上默认会有4个空格....
至于在新行后面添加制表符--您可以这样做:
line.replace("\n", "\n\t");或
line.replaceAll("\n", "\n\t");这取决于您的用例。
如果你每次都需要跳转到更远的地方,试着这样做:
String tabSpacing = "\n\t";
for (int i = 0; i < lines.length; i++) {
String line = lines[i].replace("\n",tabSpacing);
tabSpacing += "\t";
}值得一提的是,换行符在某些系统环境中有所不同。例如,Windows使用crlf (回车符,换行符),而*nix只使用lf (换行符)。
因此,在java中,您可以使用\r\n,也可以只使用\n,这取决于系统环境。解决这个问题的一种方法是调用系统的属性。
System.getProperty("line.separator");这可以与以下内容结合使用:
final String lineSeparator = System.getProperty("line.separator");
line.replace(lineSeparator, lineSeparator += "\t");等等。
基于OP的注释的UPDATE -- --您可能希望查看此SO线程,了解如何将文本格式化为Java Standard Formatting for Source Code:Java library for code beautify/format
发布于 2013-09-12 23:34:45
尝试使用setLeftIndent并为每行指定不同的样式:
http://goo.gl/nA7opA (setleftindent手册页)
样式示例:http://goo.gl/8Yda5p
https://stackoverflow.com/questions/18768255
复制相似问题