【问题标题】:Highlight a row that aiming cursor in JTextPane在 JTextPane 中突出显示瞄准光标的行
【发布时间】:2016-10-27 07:30:18
【问题描述】:

当我将光标对准JTextPane 中的文本时,如何在不单击的情况下突出显示当前光标位置的行文本?

这是我的例子:

所以,如果我的光标瞄准(没有点击)在第 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);
}

【问题讨论】:

  • 您的问题是:如何实现?我已经点击了您的问题,因为不清楚您想要什么。请改进,我将删除downclick,好吗?
  • 是的,我想实现它。
  • 好的,谢谢。请修改/改进实际问题文本
  • 我的帖子已经更新了
  • 我的问题还少吗?我觉得够了。

标签: java swing cursor highlight jtextpane


【解决方案1】:

查看Line Painter。它显示了如何根据当前插入符号位置突出显示线条的背景。

由于您想要鼠标位置的行,显然您需要修改代码来处理MouseListenermouseMoved(...) 事件。

因此您需要使用MouseEvent 中的信息来获取鼠标当前所在的Point。然后,您需要使用这一点创建一个Rectangle。我猜你只需要将矩形的宽度/高度设置为 1。

【讨论】:

  • 如果没有点击怎么办?
  • @newbie,我已经告诉过你怎么做。您需要修改链接中的代码。我们不是来给你写代码的。
猜你喜欢
  • 2011-07-21
  • 2012-04-04
  • 2012-05-15
  • 2013-11-14
  • 2011-08-06
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多