Java 如何找出所选文本的行号?
假设这个非常小的程序:Java 如何找出所选文本的行号?,java,button,listener,Java,Button,Listener,假设这个非常小的程序: 1. package ex1; 2. public interface Resizable { 3. void resize(); 4. } 在我的编辑器中,如果我使用鼠标选择第2-3行,然后说单击按钮,我想突出显示这些文本并打印,哪些行号恰好是为按钮选择的 我可以做突出显示部分,但我不知道如何找到突出显示文本的行号,因为我认为,我应该使用侦听器,它将检测编辑器中的任何更改 我想我应该使用一个动作监听器,它会在选择文本块后检测何时按下按钮。但是我
1. package ex1;
2. public interface Resizable {
3. void resize();
4. }
在我的编辑器中,如果我使用鼠标选择第2-3行,然后说单击按钮,我想突出显示这些文本并打印,哪些行号恰好是为按钮选择的
我可以做突出显示部分,但我不知道如何找到突出显示文本的行号,因为我认为,我应该使用侦听器,它将检测编辑器中的任何更改
我想我应该使用一个动作监听器,它会在选择文本块后检测何时按下按钮。但是我如何知道,哪些行被精确地选择?高亮显示的开始和结束可以分别从插入符号位置
点和标记处获取。这些是文档中的偏移量。然后必须计算从文档开始到标记/do的换行数
textArea.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
int startLine = getLine(e.getDot());
int endLine = getLine(e.getMark());
...
}
});
private int getLine(int offset) {
String text = textArea.getDocument().getText(0, offset);
int linenr = 0;
int idx = text.indexOf("\n");
while (idx != -1) {
linenr++;
idx = text.indexOf("\n", idx);
}
return linenr;
}
这是否同时正确地标记为java
和jquery
?您使用的框架是什么?对不起,它与Java有关。Jquery作为标签建议出现,我认为它与这个问题相关。我把标签拿掉了,你用的是Swing吗?(对于按钮、窗口等?)(例如,检查Button类的包名)也许这会有用:这和查看类: