将元素添加到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());
- java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver:我加载了正确的驱动程序吗?
- 在java中读取jpeg2000文件
- 将java.util.Map 转换为scala.collection.immutable.Map
- 使用JNA进行C回调会导致JRE崩溃
- org.apache.xml.security.c14n.CanonicalizationException:元素listFunctions具有相对名称空间:xmlns =“xxx_xxx_listFunctions”
- Joda时间:如何在某个日期间隔获取工作日的日期?
- 非空字符串的哈希码是否可以为零?
- 访问用java编写的Web服务方法时的java.lang.ClassCastException。 JAXB
- javax.naming.NameNotFoundException:在此Context中未绑定Name。 无法找到
- 如何使用AspectJ和Tomcat配置加载时编织?
- Swing JTextField如何删除边框?