对于学校项目,我必须在JList上使用ListSelectionListener(LSL)。我知道LSL响应鼠标点击和鼠标释放。但对于该项目,我必须让它响应双击。反正有没有让LSL回应呢?
答案 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选择中的更改。