这是我做的课程设计,左边是三个JList,现在出现的问题就是,当我监听到其中一个jList,其余两个只要有选择过的项,选择还在那边。我想要的效果是:当我选中某个jlist的选项,其余的jlist都会自己取消选择。我用的监听是ListSelectionListener。谢谢各位。

解决方案 »

  1.   

    你可以选中某个Jlist是,在其他两个Jlist上调用jList.clearSelection();
      

  2.   

    代码如下:
    if (e.getSource() == jl_user) {
    if(!jl_book.isSelectionEmpty()){
    jl_book.clearSelection();
    }
    if(!jl_other.isSelectionEmpty()){
    jl_other.clearSelection();
    }
      

  3.   

    很明显,异常时你在调用clearSelection()时出现的。但是这并不代表是clearSelection()方法有问题。而是你的第三方类Navigation 实现了ListSelectionListener,所以当你调用clearSelection()方法时,会调用一些列的fireValueChanged()方法。你的Navigation会收到来自clearSelection()发出的通知。这时会调用你的Navigation中的valueChanged()方法,而空指针异常真正出现在的位置在这里。所以你得查查这块的代码。