ListSelectionListener双击

时间:2015-03-10 14:34:23

标签: java swing double-click

对于学校项目,我必须在JList上使用ListSelectionListener(LSL)。我知道LSL响应鼠标点击和鼠标释放。但对于该项目,我必须让它响应双击。反正有没有让LSL回应呢?

1 个答案:

答案 0 :(得分:2)

我不知道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然后实现我显示的点击计数代码来解决这个问题。但是,大多数人会认为这是一个黑客攻击,因为由于已经提到的原因,不建议使用MouseListeners来跟踪JList选择中的更改。