我正在制作一个程序,该程序涉及将输入的文本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之后添加一个,其中是填充文本区域中一行的字符数。\nxx
将此想法应用于自动换行将只涉及遍历您的字符串,并且按照此答案的评论中的建议,添加换行符以使其出现在空格上。