突出显示在JTextPane中瞄准光标的行

时间:2016-06-24 15:54:10

标签: java swing cursor highlight jtextpane

当我将光标指向JTextPane中的文字时,如何突出显示当前光标位置的行文字而不点击?

这是我的例子:

example

所以,如果我的光标在第10行瞄准(没有点击),那么它将突出显示第10行中的所有单词。

这是我的问题:

public void mouseMoved(MouseEvent e) {
        int x=e.getX();
        int y=e.getY();
        component.requestFocus();

        Document doc = component.getDocument();
        Element root = doc.getDefaultRootElement();
        Element element = root.getElement(e.getX());
        int start = element.getStartOffset();
        int sel = start + e.getY();
        component.select(sel, sel);
}

1 个答案:

答案 0 :(得分:2)

结帐Line Painter。它显示了如何根据当前插入位置突出显示该行的背景。

由于您需要鼠标位置的行,您显然需要修改代码以处理mouseMoved(...)的{​​{1}}事件。

因此,您需要使用MouseListener中的信息来获取鼠标当前所在的MouseEvent。然后,您需要使用此点创建Point。我猜你只需要让Rectangle的宽度/高度值为1。