如何从JEditorPane获取光标当前所在行的行文本?

时间:2015-12-31 04:54:08

标签: java jeditorpane

我有一个JEditorPane,我在上面放了一个鼠标监听器,可以检测光标在哪里。

但是,我希望能够获取光标所在行的文字。有可用的实用方法吗?如果没有,那么我将如何构建一个方法呢?

        xmlEditor.addMouseListener(
            new MouseAdapter() {
                public void mouseClicked(MouseEvent me) {  
                    try {
                        int caretPosition = xmlEditor.getCaretPosition();
                        int offset = 0;
                        int length = 0;
                        xmlEditor.getText(offset, length);
                    } catch (BadLocationException ex) {
                        Logger.getLogger(EZXPathFrame.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
        );

1 个答案:

答案 0 :(得分:2)

  

我有可以使用的实用方法吗?

从未尝试使用JEditorPane,但您可以使用Utilities类。您应该可以使用getRowStart(...)getRowEnd(...)等方法。一旦知道起始和结束偏移,就可以从JEditorPane获取文本。

类似的东西:

int start = Utilities.getRowStart(textComponent, offset);
int end = Utilities.getRowEnd(textComponent, offset);
String text = textComponent.getText(start, end-start);