从ArrayList填充JList<>

时间:2016-02-12 15:03:00

标签: java swing arraylist jlist populate

您好我有一个ArrayList,其中catalogo是我的类。我会填充这些arraylist的JList,但我不能......你能帮助我吗?

这里有你的代码:

public class YouIng {

private List<Catalogo> listaCatalogo = new ArrayList<Catalogo>();

    public YouIng(){
        Catalogo premium = new Catalogo();
        Catalogo standard = new Catalogo();
        listaCatalogo.add(premium);
        listaCatalogo.add(standard);
    }

    public List<Catalogo> getCatalogo(){
        return listaCatalogo;
    }

我使用名为YouIngFrame的GUI类来使用我的程序。当我点击loginButton时,它会显示一个应该从listaCatalogo填充的JList,但它不是。

这里有YouIngFrame类:

private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
    card.show(mainPanel, "homePanel");
    welcomeLabel.setText("Benvenuto: " +usernameField.getText().toString());

    for(int i=0; i<youing.getCatalogo().size(); i++){
        jList.add(youing.getCatalogo().get(i));
    }    
}                   

希望这会对你有所帮助

编辑:

这是我的Catalogo.java:

public class Catalogo {

public Catalogo(){
    Categoria commedia = new Categoria();
    Categoria fantasy = new Categoria();
    listaCategoria.add(commedia);
    listaCategoria.add(fantasy);
}

private List<Categoria> listaCategoria = new ArrayList<Categoria>();

public List<Video> CercaVideo(String ParolaChiave) {
    return null;
}

public Video Search(String IDvideo, Categoria cat) {
    return null;
}

public List<Categoria> getCategorie() {
    return listaCategoria;
}

public Categoria aggiungiVideo(Video usr_video, int categoriaScelta) {
    return null;
}

}

1 个答案:

答案 0 :(得分:2)

DefaultListModel dlm = new DefaultListModel();
for(Catalogo p : listaCatalogo ){
     dlm.addElement(p.toString());
}    
JList jList = new JList(dlm);

现在你改变了你的方法签名。所以这是根据你的新方法的解决方案:

private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
card.show(mainPanel, "homePanel");
welcomeLabel.setText("Benvenuto: " +usernameField.getText().toString());

DefaultListModel<String> dlm = new DefaultListModel<String>();
for(Catalogo p : youing.getCatalogo() ){
 dlm.addElement(p.toString());
}    
JList<String> jList = new JList<String>(dlm);
System.out.println(jList.getModel().toString()); //TO TEST if Jlist successfully added catalogo      
}         

并且不要忘记您必须覆盖类toString()中的YouIng方法。