我有 JList 充满了项目。当我单击一个项目然后单击离开时,该项目仍处于选中状态。我的直觉说应该取消选择该项目。有没有一种简单的方法可以做到这一点?
我想解决这个问题的方法是将鼠标适配器附加到 JList 以便每当我单击 JList 时都会调用 clearSelection()。但这不会干扰从列表中选择一个项目吗?
如果您选择列表中的某些内容并离开,则列表元素应保持选择。如果你想要别的东西,你应该使用FocusListener
像这样的东西:
list.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent e) {
JList list = (JList) e.getComponent();
list.clearSelection();
}
});
这是组件的正确行为。添加另一个MouseListener
不会干扰JList
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {
JList list = (JList) e.getSource();
list.clearSelection();
}
});