JTextArea中的行

有没有可靠的方法来计算字符串在JTextArea中如何划分成行?

我有一个固定宽度的JTextArea,当它被填充时,会添加一个新行并且它会垂直展开。

现在,我需要确切知道哪一行是哪一行。 我可以使用字体指标添加单个字符宽度,但我不知道这是否可靠,或者是否有更好的方法。

字体指标“技巧”是唯一的方法吗?

所有JTextComponent都有modelToView(...)viewToModel(...)方法可以提供帮助,但javax.swing.text.Utilities类中的方法可能更好,包括getRowStart(...)getRowEnd(...)

modelToView可能对OP没有帮助,因为它从像素坐标开始。 getRowStart只是间接有用,因为它从offset而不是行索引开始,并返回一个偏移量。 这里最有用的函数是JTextArea.getLineStartOffset(lineNumber),它返回特定行开头的文本偏移量,反之,返回JTextArea.getLineOfOffset(偏移量)。 (希望这个答案在我今天早些时候遇到类似问题偶然发现此页面时已经在这里:-))