将元素添加到JList

我有一个包含客户名称的对象数组,如下所示: Customers[]

按下按钮后如何自动将这些元素添加到现有的JList中? 我尝试过这样的事情:

 for (int i=0;i<Customers.length;i++) { jList1.add(Customers[i].getName()); } 

但我总是犯错误。 我怎么解决这个问题? 我正在研究NetBeans。 出现的错误是“找不到适合add(String)的方法顺便说一下,我的方法getName返回String中客户的名称。

您正在使用的add方法是Container#add方法,所以肯定不是您需要的方法。 您需要更改ListModel ,例如

 DefaultListModel model = new DefaultListModel<>(); JList list = new JList<>( model ); for ( int i = 0; i < customers.length; i++ ){ model.addElement( customers[i].getName() ); } 

编辑:

我调整了代码片段,将名称直接添加到模型中。 这样就无需使用自定义渲染器

添加到ListModel而不是直接添加到JList本身。 目前您使用的add方法不会影响列表的内容。 DefaultListModel是可变的,因此可以在运行时更新。

声明:

 JList jList1 = new JList(new DefaultListModel()); 

添加:

 ((DefaultListModel)jList1.getModel()).addElement(Customers[i].getName());