1

我正在制作一个程序,该程序涉及将输入的文本JTextArea保存到文件中。问题是,当我使用setWrapStyleWord()时,文本换行时不会创建换行符。因此,打印到文件中的文本是一行非常长的行。

有什么方法可以检测换行的时间以便我可以插入换行,或者有没有办法在发生换行的地方简单地添加换行?

4

3 回答 3

3

利用javax.swing.text.Utilities

public static final int getRowStart(JTextComponent c, int offs)
public static final int getRowEnd(JTextComponent c, int offs)

通过你JTextArea和上一行的偏移量

于 2012-08-17T06:11:10.987 回答
2

这个上下文敏感。也就是说JTextArea,正如 BrianRoach 已经说过的,根据 的大小,单词 break 会发生变化。

但是,如果您真的下定决心,您也许可以通过使用LineBreakMeasurer.

看看这个例子

于 2012-08-17T06:02:19.700 回答
0

如果您使用字符而不是单词来换行,您可以:

如果您在 中使用等宽字体,则可以在之后处理字符串以在每个字符数JTextArea之后添加一个,其中是填充文本区域中一行的字符数。\nxx

将此想法应用于自动换行将只涉及遍历您的字符串,并且按照此答案的评论中的建议,添加换行符以使其出现在空格上。

于 2012-08-17T04:45:25.600 回答