簡體   English   中英

如何將其添加到 JList

[英]How to add this to a JList

我想將 List[i] 的每個項目添加到不同的 Jlist 中,例如第一個 jList 會有 Hello,bye,good,bad,nice,Ses,Iteme

我想制作 4 個不同的 JList,

  • 第一個與你好,再見,好,壞......
  • 第二個是 569.99,551.59,678.99,....
  • 第三個 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");    


    }
}

將所有值添加到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);

現在,時髦的部分來了,為您想要顯示數據的每種不同方式創建一個ListCellRenderer ......

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());

請記住,模型負責對數據建模,渲染器負責渲染數據。 不要更改模型以滿足您的渲染要求。

查看概念:編輯器和渲染器以及編寫自定義單元格渲染器以了解更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM