0

我想在文本区域中逐行设置不同的标签大小。谁能给我一个解决方案。可能吗?我想,在文本区域上键入文本后,当我按下格式按钮时,想要为每一行添加一个选项卡。第 1 行 - 无制表符 第 2 - 1 个制表符 第 3 行 - 2 个制表符 第 4 - 3 个制表符

4

3 回答 3

3

你读过 API 吗?API 有一个方法可以告诉您:

  1. 文本区域有多少行
  2. 每行的起始偏移量。

我会让你阅读 API 以找到方法。

然后,您将创建一个循环并获取每行的起始偏移量。然后你使用:

textArea.getDocument().insertString(...);

为每一行插入适当数量的制表符“\t”。

于 2013-09-12T15:28:10.360 回答
3

我认为默认选项卡大小/长度取决于操作系统/系统设置。\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");

ETC...

UPDATE --基于来自 OP 的评论——您可能需要查看这个 SO 线程,了解如何将文本格式化为 Java 源代码标准格式:用于代码美化/格式化的 Java 库

于 2013-09-12T15:30:20.457 回答
1

尝试使用 setLeftIndent 并为每行指定不同的样式:

http://goo.gl/nA7opA(setleftindent手册页)

样式示例:http: //goo.gl/8Yda5p

于 2013-09-12T15:34:45.300 回答