我有问题。我想在其他类中将创建的对象列表添加到Jlist。我发现了很多错误。我尝试了不同的方法,但我不能这样做。现在我在我的GUI中获得阵列地址,但我想要名字和奖品(cena):(请帮助。
我要添加列表的类中的代码:
DefaultListModel<String> dlm = new DefaultListModel<String>();
magazyn.setModel(dlm);
hurt.addKonsola();
magazyn.setListData(hurt.konsole.toArray());
magazyn = new JList(hurt.konsole.toArray());
//dlm.addElement(hurt.addKonsola());
//for(String s:hurt.konsole){
// dlm.addElement(s);
// }
不同类中的方法:
public void addKonsola() {
Konsola[] konsola = new Konsola[10];
konsola[0] = new Konsola("PlayStation 2",900,240,"Sony Computer Entertainment",32,100);
konsola[1] = new Konsola("PlayStation 3",1100,800,"Sony Computer Entertainment",256,320000);
konsola[2] = new Konsola("PlayStation 4",1250,1400,"Sony Computer Entertainment",8000,500000);
konsola[3] = new Konsola("Xbox 360",850,450,"Microsoft",512,250000);
konsola[4] = new Konsola("Xbox One",1150,1200,"Microsoft",8000,500000);
konsola[5] = new Konsola("Wii U",750,1,"Nintendo",2000,8000);
//for (int i = 0; i<konsola.length; i++) {
this.konsole.addAll(Arrays.asList(konsola));
// }
}
答案 0 :(得分:0)
你的Konsola应该有public String toString()
方法,返回你想要在JList中看到的String。
如果将模型设置为magazyn,然后将另一个对象(新JList)设置为此变量,则模型asignment将不起作用。首先分配List,然后设置适当的模型,使用toString方法将字符串赋予JList或Konsola对象。
试试这个:
public void test(JPanel panel) {
JList<Konsola> magazyn = new JList<>();
DefaultListModel<Konsola> dlm = new DefaultListModel<>();
addKonsola(dlm);
magazyn.setModel(dlm);
panel.add(magazyn);
}
public void addKonsola(DefaultListModel<Konsola> model) {
model.addElement(new Konsola("PlayStation 2", 900, 240, "Sony Computer Entertainment", 32, 100));
model.addElement(new Konsola("PlayStation 3", 1100, 800, "Sony Computer Entertainment", 256, 320000));
}
当然,您可能需要与panel.add(magazyn)
具体相关。 :-)
我的虚拟Konsola课程看起来像这样:
class Konsola {
int i = 0;
String s = null;
public Konsola(String str, int i, int j, String t, int k, int l) {
this.s = str;
this.i = i;
}
public String toString() {
return s + " " + i;
}
}