我有一组包含客户名称的对象,如下所示:Customers[]
按下按钮后如何自动将这些元素添加到现有的JList中?我尝试过这样的事情:
for (int i=0;i<Customers.length;i++)
{
jList1.add(Customers[i].getName());
}
但我总是犯错。我怎么解决这个问题?我正在研究NetBeans。 出现的错误是“找不到合适的add(String)方法。顺便说一下,我的方法getName在String中返回客户名称。
答案 0 :(得分:8)
您使用的add
方法是Container#add
方法,所以肯定不是您需要的方法。
您需要更改ListModel
,例如
DefaultListModel<String> model = new DefaultListModel<>();
JList<String> list = new JList<>( model );
for ( int i = 0; i < customers.length; i++ ){
model.addElement( customers[i].getName() );
}
编辑:
我调整了代码段,将名称直接添加到模型中。这样就无需使用自定义渲染器
答案 1 :(得分:1)
添加到ListModel
而不是直接添加到JList
本身。目前,您使用的add方法不会影响列表的内容。 DefaultListModel
是可变的,因此可以在运行时更新。
声明:
JList<String> jList1 = new JList<String>(new DefaultListModel<String>());
添加:
((DefaultListModel)jList1.getModel()).addElement(Customers[i].getName());