inside the listner
  if(canOnlySelectOne) {
     JList current = ((JList)e.getSource());
     int index current.getSelectedIndex();
     for(int i = 0; i < list.length; i++)
        list[i].setSelectedIndex(-1);
     current.setSelectedIndex(index);
  }

解决方案 »

  1.   

    我觉得可以啊
    除非记录下来当前哪个list被选中,不然就得要循环
      

  2.   

    问题已经解决了。还得多亏shine333提醒。主要问题是不能用list。setSelectedIndex(-1);
    我一开始也是用这个方法,但是后来发现这个办法是不能用的。
    -1就代表了什么都不变。
      

  3.   

    正确做法。
    if(canOnlySelectOne) 
    {
         JList current = ((JList)e.getSource());
         int index current.getSelectedIndex();
         for(int i = 0; i < list.length; i++)
         {
            list[i].setSelectedIndex(-1);
          }
         current.setSelectedIndex(index);
      }
      

  4.   

    弄错了,应该是:
    if(canOnlySelectOne) 
    {
         JList current = ((JList)e.getSource());
         int index current.getSelectedIndex();
         for(int i = 0; i < list.length; i++)
         {
            list[i].clearSelection();
          }
         current.setSelectedIndex(index);
      }