将对象列表添加到Jlist时出现Java错误

时间:2017-01-15 13:24:44

标签: java swing user-interface

我有问题。我想在其他类中将创建的对象列表添加到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));

  // }
}

1 个答案:

答案 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;
    }
}