0

我有 JList 充满了项目。当我单击一个项目然后单击离开时,该项目仍处于选中状态。我的直觉说应该取消选择该项目。有没有一种简单的方法可以做到这一点?

我想解决这个问题的方法是将鼠标适配器附加到 JList 以便每当我单击 JList 时都会调用 clearSelection()。但这不会干扰从列表中选择一个项目吗?

4

2 回答 2

1

如果您选择列表中的某些内容并离开,则列表元素应保持选择。如果你想要别的东西,你应该使用FocusListener

像这样的东西:

list.addFocusListener(new FocusAdapter() {
  public void focusLost(FocusEvent e) {
    JList list = (JList) e.getComponent();
    list.clearSelection();
  }
});
于 2013-10-09T16:15:58.533 回答
1

这是组件的正确行为。添加另一个MouseListener不会干扰JList

list.addMouseListener(new MouseAdapter() {

    @Override
    public void mouseExited(MouseEvent e) {
        JList list = (JList) e.getSource();
        list.clearSelection();
    }
});
于 2013-10-09T14:41:34.527 回答