能给我也发份么?谢谢
[email protected]

解决方案 »

  1.   

    不错,我也沾点光吧。
    [email protected]
      

  2.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.event.ListSelectionListener;
    import java.util.EventListener;
    import javax.swing.event.ListSelectionEvent;public class NewList extends JList implements ListSelectionListener
    {
    int sel[];
    boolean manualset;
    public void setSelectedIndices(int a[])
    {
    manualset=true;
    System.out.println("NewList.setSelectedIndices");
    if(a!=null)
    super.setSelectedIndices(a);
    else
    this.clearSelection();
    sel = a;
    }
    public NewList()
    {
    addMouseListener(new MouseAdapter()
    {
    public void mousePressed(MouseEvent me)
    {
    if(me.getClickCount()<2)
    return;
                   JList list = (JList) me.getSource();
                   int index = list.locationToIndex(me.getPoint());
                   int oldsel[]=list.getSelectedIndices();
                   int newsel[];
                   if(list.isSelectedIndex(index))
                   {
                    //list.setSelectedIndices(int[] indices)
                    newsel=new int[oldsel.length-1];
                    int j=0;
                    for(int i=0;i<oldsel.length;i++)
                    {
                    if(oldsel[i]!=index)
                    {
                    newsel[j]=oldsel[i];
                    j++;
                    }
                    }
                   }
                   else
                   {
                    newsel=new int[oldsel.length+1];
                    if(oldsel.length>0)
                    System.arraycopy(oldsel,0,newsel,0,oldsel.length);
                    newsel[oldsel.length]=index;              
                   }
    list.setSelectedIndices(newsel);
                   Rectangle rect = list.getCellBounds(index, index);
                   list.repaint(rect);

    }
    });
    addListSelectionListener(this);
    }
    public static void main(String args[])
    {
    JFrame frame=new JFrame("new list test");
    NewList newlist=new NewList();
    String[] listdata={"item1","item2","item3"};

    newlist.setListData(listdata); frame.getContentPane().add(newlist);
    frame.setSize(400,400);
    frame.setVisible(true);
    frame.show();
    }
    boolean reset=false;
    public void valueChanged(ListSelectionEvent e) 
    {
    if(reset==true)
    {
    return;
    }
    reset=true;
    if(!manualset)
    {
    if(sel!=null) super.setSelectedIndices(sel);
    else
    clearSelection();
    }
    manualset=false;
    reset=false;
    //System.out.println("valueChanged");
    }
    }
      

  3.   

    高手在前,不容我放肆,哈哈。
    masterz的搞法很好,但迂回曲折(right?)。
    我想从javax.swing.plaf.basic.basiclistui入手,但是没实现,masterz能再想想办法吗?
      

  4.   

    等弄好了一定给俺一份啊~~~俺也给分
    [email protected]