【发布时间】:2013-11-07 00:40:23
【问题描述】:
我将MouseListener 添加到JList,以便在单击鼠标右键时清除JList 中的选择。但我允许JList 能够处理间隔选择。当我选择使用控制按钮并从列表中随机选择一些项目时,MouseEvent 被触发!但是当我使用 Shift 键进行连续选择时,它工作正常!
这是我的代码:
List.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
JList list = (JList) e.getSource();
if ( SwingUtilities.isRightMouseButton(e) ) {
System.out.println("Boom");
list.clearSelection();
}
}
});
【问题讨论】:
-
1) "..我正在将
MouseListener添加到JList.." 这正是事情开始出错的时候。对于列表,请改为添加ListSelectionListener。 2) 为了尽快获得更好的帮助,请发帖SSCCE。 -
@AndrewThompson 我希望列表在我右键单击列表时清除选择,因此是 MouseListener。我不知道为什么要使用 ListSelectionListener。
-
“我希望列表在我右键单击列表时清除选择..” 看起来很违反直觉。我建议.. 不要那样做。但是,如果您坚持这样做,请发布您的最佳尝试的 SSCCE。我不会帮忙,但其他人可能会。
-
可以通过 ListSelectionListener、ListSelectionModel 和鼠标事件实现,理论上(屏幕上的视觉事件)与 MsExcell e.i. 中一样,注意 ListSelectionListener 返回所选行的数组
-
如果您点击我在第一条评论中放置的链接,或者,如果您只是将该词放在搜索引擎中,那么所有内容都会显示出来。
标签: java swing awt jlist mouselistener