从 ArrayList<> 填充 JList

Populate JList from ArrayList<>

您好,我有一个 ArrayList,其中 catalogo 是我的 class。我会填充这些数组列表的 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 Class 来使用我的程序。当我点击 loginButton 时,它会显示一个应该从 listaCatalogo 填充的 JList,但它不是。

这是 YouIngFrame class:

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

}

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      
}         

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