我正在制作一个程序,该程序涉及将输入的文本JTextArea
保存到文件中。问题是,当我使用setWrapStyleWord()
时,文本换行时不会创建换行符。因此,打印到文件中的文本是一行非常长的行。
有什么方法可以检测换行的时间以便我可以插入换行,或者有没有办法在发生换行的地方简单地添加换行?
利用javax.swing.text.Utilities
public static final int getRowStart(JTextComponent c, int offs)
public static final int getRowEnd(JTextComponent c, int offs)
通过你JTextArea
和上一行的偏移量
这个上下文敏感。也就是说JTextArea
,正如 BrianRoach 已经说过的,根据 的大小,单词 break 会发生变化。
但是,如果您真的下定决心,您也许可以通过使用LineBreakMeasurer
.
看看这个例子
如果您使用字符而不是单词来换行,您可以:
如果您在 中使用等宽字体,则可以在之后处理字符串以在每个字符数JTextArea
之后添加一个,其中是填充文本区域中一行的字符数。\n
x
x
将此想法应用于自动换行将只涉及遍历您的字符串,并且按照此答案的评论中的建议,添加换行符以使其出现在空格上。