【问题标题】:ListSelectionListener double clickListSelectionListener 双击
【发布时间】:2015-05-12 01:18:27
【问题描述】:

对于学校项目,我必须在 JList 上使用 ListSelectionListener(LSL)。我知道 LSL 会响应鼠标单击和鼠标释放。但是对于该项目,我必须让它响应双击。有没有办法让 LSL 对此做出回应?

【问题讨论】:

    标签: java swing double-click


    【解决方案1】:

    我不知道ListActionHandler 是什么,因为你没有提供它的代码。

    我的猜测是它实现了MouseListener,或者可能扩展了MouseAdapter。如果是这样,您将必须实现一个名为public void mouseClicked(MouseEvent e) 的方法。在那里,只需放置一个 if-check 以仅响应双击:

    public void mouseClicked(MouseEvent e) {
      if (e.getClickCount() == 2) {
        // do your stuff here
      }
    }
    

    编辑:

    现在您已将帖子更正为ListSelectionListener,您会注意到只有一种方法可以实现,void valueChanged(ListSelectionEvent e) 不会直接转化为鼠标点击。

    为什么?因为鼠标不是在 JList 上更改选择的唯一方法。可以通过箭头键或以编程方式完成。

    这可以通过向 JList 添加MouseListener 然后实现我展示的点击计数代码来解决(某种程度上)。但是,大多数人会认为这是一种 hack,因为不建议使用 MouseListeners 来跟踪 JList 选择的变化,原因已经提到。

    【讨论】:

    • 我尝试删除 ListSelectionListener,现在我正在使用 MouseLustener。据我所知,它运行良好!谢谢!
    猜你喜欢
    • 2011-07-06
    • 2015-11-15
    • 2012-02-14
    • 2012-07-09
    • 2013-09-25
    • 2015-07-19
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多