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类的包名)也许这会有用:这和查看类: