2014-03-31 87 views
-1

我要添加列表中每個項目的[I]成不同的jList,例如第一的jList會對你好,再見,好的,壞的,漂亮的,的SES,Iteme如何把它添加到一個JList

我想使4種不同的JList,

  • 一日一與你好,再見,好的,壞的......
  • 第二屆一個與569.99,551.59,678.99,...
  • 3一個55,52,72,....和
  • 最後一個用jlas,byew,good2

class List 
{ 

    Info[] List; 

    public void createList() 
    { 

     List = new Info[7]; 

     List[0] = new Info("Hello",569.99,55,"jlas"); 

     List[1] = new Info("bye",551.59,52,"byew"); 
     List[2] = new Info("good",678.99,72,"good2"); 
     List[3] = new Info("bad",4547.959,151,"bad2"); 
     List[4] = new Info("nice",3554.99,235,"wii-U.jpg"); 
     List[5] = new CInfo("Ses",1140.99,4,"das"); 
     List[6] = new Info("Iteme",584.95,5,"sade");  


    } 
} 
+0

我要打4個不同的JList,第一個與你好,再見,好的,壞的......在2ndone與569.99,551.59,678.99 ,....第三個55,52,72,....和最後一個與jlas,byew,good2,..... – CVasquezG

+1

您可以隨時編輯您自己的問題以添加更多信息; @Frakcool爲你做了這個。 –

+0

你有一個類和一個同名的變量? 'List'類和'List'一個Info數組。 – csmckelvey

回答

2

採取的所有值將它們添加到ListModel

DefaultListModel model = new DefaultListModel(); 
for (Info info : List) { 
    model.addElement(model); 
} 

然後加入這個模型每個JList S的...

JList list1 = new JList(model); 
JList list2 = new JList(model); 
JList list3 = new JList(model); 
JList list4 = new JList(model); 

現在,這裏是時髦的部分,爲eac創建一個ListCellRenderer你要顯示的數據H不同的方式...

import java.awt.Component; 
import javax.swing.DefaultListCellRenderer; 
import javax.swing.JList; 

public class ListTest { 

    public static void main(String[] args) { 

    } 

    public class InfoNameListCellRenderer extends DefaultListCellRenderer { 

     @Override 
     public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { 
      if (value instanceof Info) { 
       Info info = (Info)value; 
       value = info.getName(); // Or what ever getter you have available for such things 
      } 
      return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); 
     } 



    } 

} 

並將其應用到相應的列表...

list1.setCellRenderer(new InfoNameListCellRenderer()); 

記住,這是該機型的責任數據模型,它的渲染器的負責渲染它。不要更改模型以滿足渲染要求。

看看Concepts: Editors and RenderersWriting a Custom Cell Renderer更多細節