给JList设置CellRenderer:class MyListCellRenderer extends JLabel implements ListCellRenderer {
          
       public Component getListCellRendererComponent( JList list,
                  Object value,int index,
                  boolean isSelected,boolean cellHasFocus ) {
              setIcon( images[index] );//images数组存放Icon对象,如ImageIcon
              setText( value.toString() );
              setOpaque( true );
              
              return this;
       }
}
然后使用:
list.setCellRenderer( new MyListCellRenderer() );

解决方案 »

  1.   

    class myListCellRenderer extends DefaultListCellRenderer
     {  ImageIcon myIcon[];
     
         public myListCellRenderer() {
           myIcon = new ImageIcon[6];
           myIcon[0] = new ImageIcon(myListCellRenderer.class.getResource("a.png"));
           myIcon[1] = new ImageIcon(myListCellRenderer.class.getResource("b.png"));
           myIcon[2] = new ImageIcon(myListCellRenderer.class.getResource("c.png"));
           myIcon[3] = new ImageIcon(myListCellRenderer.class.getResource("d.png"));
           
         }
     
       
           public Component getListCellRendererComponent( JList list,
                      Object value,int index,
                      boolean isSelected,boolean cellHasFocus ) {
        
                  super.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus);
                  
                  setIcon( myIcon[index]);//images数组存放Icon对象,如ImageIcon
                  setText( value.toString() );
                  setOpaque( true );              return this;
           }
    }
        
      在用到myListCellRenderer的类中,
      myListCellRenderer mycell=new myListCellRenderer();
      list.setCellRenderer(mycell);
      Vector v=new Vector(1,1);
      JList list=new JList();for (int i=0;i<5;i++){v.addElement("str"+i);   //此处为你需要的字符串
    }
      

  2.   

    顺序写反了,抱歉
    Vector v=new Vector(1,1);
    JList list=new JList();
    myListCellRenderer mycell=new myListCellRenderer();
    list.setCellRenderer(mycell);
    for (int i=0;i<5;i++){
      v.addElement("str"+i);   //此处为你需要的字符串
    }
      

  3.   

    谢谢小鱼儿,雪莉姐姐。
    雪莉姐姐:setIcon( myIcon[index]);//images数组存放Icon对象,如ImageIcon我再写程序的时候,index 到底是写什么啊是不是可以写 setIcon(myIcon); ?还有,我的程序中写错了,应该是 list.setListData(v);
    在你的程序中,也是这样用吗?
      

  4.   

    对不起哦,我的也写错了,1. 我用的是JList list=new JList(v); 当然,你的用法也不错list.setListData(v); 2. index就是jlist中的某一项在jlist中的序号,用myIcon[index]是为了让你的图标更多样     化,或者你也可以自己写个方法,根据不同的list项来设置myIcon的下标的值,这样就更灵活  了。  当然也可以用你说的setIcon(myIcon),这样你的每个项都是一样的图标了。   第一次拿到这么多的分,真有成就感。