对于一个学校项目,我必须使用ListSelectionListener(LSL)在JList上。我知道LSL响应鼠标点击和鼠标释放。但是对于这个项目,我必须让它对双击做出反应。是否有一个LSL对此做出回应?
发布于 2015-03-10 15:31:13
我不知道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上选择的唯一方法。它可以通过箭头键完成,也可以通过编程方式完成。
可以(某种程度上)通过向MouseListener中添加一个JList来解决这个问题,然后实现我展示的单击计数代码。然而,由于使用MouseListeners跟踪JList的选择中的更改,由于已经提到的原因,大多数人都会认为这是一种攻击。
https://stackoverflow.com/questions/28966490
复制相似问题