可能重复:
JTextArea 中的行
在 JTextArea 中,select、highlight 等操作似乎都依赖于与文本开头的偏移量。在显示面向行的文本的应用程序中,我需要根据行和列选择、突出显示(基于其他地方的信息,而不是插入符号)。
是否有一些内置的功能,或者在一些帮助类中,可以从 row,col 中获取偏移量?我意识到我可以在行起始偏移等上维护单独的数据并计算行,col--> 偏移,但肯定 JTextArea(或其模型)已经知道这一点以便显示文本,所以我相信必须已经一种方法来做到这一点。
我确实看到了使用类似这样的示例,使用 textarea.viewToModel(new Point(x,y));,其中 x 和 y 据称是 row,col,但据我所知,x 和 y 是像素坐标,而不是行,列...所以不知道该怎么做。
线索?谢谢!
已编辑:因此,在五位评论者认为这是其他问题的重复问题的印象下,该问题已关闭,但事实并非如此。我没有问如何将偏移量转换为行、列,也没有问如何将屏幕像素坐标转换为偏移量,这些都是其他文章中涉及的主题。
万一其他人在这里偶然发现我实际提出的问题的答案,我现在发现它如下。
JTextArea 具有我期望找到的功能,但在早期浏览中显然被忽略了:getLineStartOffset(int line) 它将为特定的文本行(行)提供从文本开始的偏移量。对此可以轻松添加 char-posn-in-line,从而得出特定字符的偏移量。