当我点击其他地方时如何取消选择JList?

时间:2013-10-09 14:35:19

标签: java swing

我有JList填充项目。当我点击一个项目然后我点击时,该项目仍然被选中。我的直觉说应该取消选择该项目。有一个简单的方法吗?

我想解决的问题是将鼠标适配器连接到JList,这样每当我点击JList时,都会调用clearSelection()。但这不会影响从列表中选择项目吗?

2 个答案:

答案 0 :(得分:1)

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

的功能
list.addMouseListener(new MouseAdapter() {

    @Override
    public void mouseExited(MouseEvent e) {
        JList list = (JList) e.getSource();
        list.clearSelection();
    }
});

答案 1 :(得分:1)

如果您在列表中选择了某些内容并离开,则列表元素应保持选择状态。如果您还想要其他内容,则应使用FocusListener

这样的事情:

list.addFocusListener(new FocusAdapter() {
  public void focusLost(FocusEvent e) {
    JList list = (JList) e.getComponent();
    list.clearSelection();
  }
});