【发布时间】:2012-11-20 02:13:48
【问题描述】:
可能重复:
Rows in JTextArea
在 JTextArea 中,选择、高亮等操作似乎都依赖于与文本开头的偏移量。在显示面向行的文本的应用程序中,我需要根据行和列选择、突出显示(基于其他地方的信息,而不是插入符号)。
是否有一些内置的功能,或者在一些帮助类中,可以从 row,col 中获取偏移量?我意识到我可以在行起始偏移等上维护单独的数据并计算行,col--> 偏移,但肯定 JTextArea(或其模型)已经知道这一点以便显示文本,所以我相信必须已经一种方法来做到这一点。
我确实看到了使用 like this one 的示例,使用 textarea.viewToModel(new Point(x,y));,其中 x 和 y 据称是 row,col,但据我所知,x 和y 是像素坐标,而不是行、列...所以不知道该怎么做。
线索?谢谢!
已编辑:因此,在五位评论者认为这是其他问题的重复项的印象下,该问题已关闭,但事实并非如此。我没有问如何将offset转换为row、col,也没有问如何将屏幕像素坐标转换为offset,这些都是其他文章中涉及的主题。
如果其他人在这里偶然发现我的实际问题的答案,我现在发现它如下。
JTextArea 具有我期望找到的功能,但显然在早期浏览中被忽略了:getLineStartOffset(int line) 它将给出特定行(行)文本的偏移量。对此可以轻松添加 char-posn-in-line,从而得出特定字符的偏移量。
【问题讨论】:
-
另见Q&A中提到的实用程序。
-
好吧,显然这个问题已经结束,我相信由于误解,我问的是我实际问的相反。我将再次发布并尝试更清晰。
-
...我想我会跳过重新提出这个问题,因为我现在已经回答了这个问题 - 回答编辑问题以供后代使用。
-
+1 用于改进问题。
标签: java swing offset jtextarea