gpt4 book ai didi

java - 获取更改的行 jtextarea

转载 作者:行者123 更新时间:2023-12-02 01:41:44 25 4
gpt4 key购买 nike

我正在做一个需要自定义验证的文本编辑器。由于内容非常大,我想到只验证更改或添加的行。验证错误通过行号显示,例如“Line: 10不能超过15个字符”

  1. 对于单行,每次用户更改时都会验证当前行,并保留行号作为引用。 - 已解决

  2. 用户可以复制文本并粘贴多行。为此,想到了 getSelectionStart 和 getSelectionEnd。有没有办法从 getSelectionStart 和 getSelectionEnd 获取行号,以便我可以获得起始行和结束行?

经过一些实验,我认为选择可见的行将解决我上面提到的第二个问题。

矩形将解决获取可视区域的x,y坐标并编写代码,我想我快完成了。但是,我没有正确获得结束行号,

      [code]
//editor is jtextarea
Rectangle r = editor.getVisibleRect();
Point top = new Point(r.x, r.y);
Point bottom = new Point(r.x, r.y + r.height);
int startRow = editor.viewToModel(top); /* this is working. it shows 0 at initial, then after the line reaches the end and when the scrollbar gets displayed, it shows the numbers correctly, 1,2,3...*/
int endRow = editor.viewToModel(bottom); /* this is not working, when we type, it is taking column numbers */
editorLineNo.setText(" START ROW " + startRow + " END ROW" + endRow);
[/code]

What is needed is, start row number and end row number from the viewable area of jtextarea

最佳答案

Is there a way of getting the row numbers ...

Element root = textArea.getDocument().getDefaultRootElement();
int row = root.getElementIndex( selectionStart ) + 1;

关于java - 获取更改的行 jtextarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com