Java 从ArrayList填充JList<&燃气轮机;

Java 从ArrayList填充JList<&燃气轮机;,java,swing,arraylist,jlist,populate,Java,Swing,Arraylist,Jlist,Populate,嗨,我有一个ArrayList,catalogo是我的班级。我想填充这些数组列表的JList,但我不能..你能帮我吗 以下是youIng代码: public class YouIng { private List<Catalogo> listaCatalogo = new ArrayList<Catalogo>(); public YouIng(){ Catalogo premium = new Catalogo(); Cata

嗨,我有一个ArrayList,catalogo是我的班级。我想填充这些数组列表的JList,但我不能..你能帮我吗

以下是youIng代码:

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;
    }
public class YouIng{
private List listaCatalogo=new ArrayList();
公共图书馆{
Catalogo premium=新Catalogo();
Catalogo标准=新Catalogo();
listaCatalogo.add(高级);
listaCatalogo.add(标准);
}
公共列表getCatalogo(){
返回listaCatalogo;
}
我使用一个名为YouIngFrame的GUI类来使用我的程序。当我单击loginButton时,它会显示一个JList,应该从listaCatalogo填充,但它不是

这里是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));
    }    
}                   
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt){
卡片显示(主面板,“主面板”);
welcomeLabel.setText(“Benvenuto:+usernameField.getText().toString());
对于(int i=0;i
现在您更改了方法签名。下面是根据您的新方法的解决方案:

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      
}         
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt){
卡片显示(主面板,“主面板”);
welcomeLabel.setText(“Benvenuto:+usernameField.getText().toString());
DefaultListModel dlm=新的DefaultListModel();
for(Catalogo p:youing.getCatalogo()){
dlm.addElement(p.toString());
}    
JList JList=新JList(dlm);
System.out.println(jList.getModel().toString());//测试jList是否成功添加了catalogo
}         

不要忘记您必须重写
toString()
类内方法
YouIng

请扩展您发布的代码,使其有效。请查看链接。我想填充Catalogo元素的jList组件,其中Catalogo是我的个人类。@xXJohnRamboXx从不在注释中提供更多详细信息。请更新您的问题。@FarazDurrani我尝试了您的last解决方案,但netbeans给了我以前相同的错误“没有找到适合add(Catalogo)的方法”请特别注意。尝试过但仍然不起作用。它没有在我的JListi中显示Catalogo元素。我重写了我的所有问题…希望它能帮助您解决我的问题Catalogo.java包含其他ArrayList,但这不是问题。问题是:如何将泛型对象显示到Jlist组件中?我尝试了上一个解决方案,但Jlist仍然没有向我展示任何东西。我想我应该在jlist右侧看到我的2个对象,premium和standard???@xXJohnRamboXx是否必须在类YouIng中重写toString()方法?
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      
}