[英]How to add this to a JList
我想將 List[i] 的每個項目添加到不同的 Jlist 中,例如第一個 jList 會有 Hello,bye,good,bad,nice,Ses,Iteme
我想制作 4 個不同的 JList,
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.