I have an array of objects that contain the name of customers, like this: Customers[]
How I can add those elements to an existing JList automatically after I press a button? I have tried something like this:
for (int i=0;i<Customers.length;i++)
{
jList1.add(Customers[i].getName());
}
But I always get a mistake. How I can solve that? I am working on NetBeans. The error that appears is "not suitable method found for add(String). By the way my method getName is returning the name of the customer in a String.
The add
method you are using is the Container#add
method, so certainly not what you need.
You need to alter the ListModel
, e.g.
DefaultListModel<String> model = new DefaultListModel<>();
JList<String> list = new JList<>( model );
for ( int i = 0; i < customers.length; i++ ){
model.addElement( customers[i].getName() );
}
Edit:
I adjusted the code snippet to add the names directly to the model. This avoids the need for a custom renderer
Add to the ListModel
rather than directly to the JList
itself. Currently you are using the add method which does not affect the contents of the list. DefaultListModel
is mutable so can be updated at runtime.
Declaring:
JList<String> jList1 = new JList<String>(new DefaultListModel<String>());
Adding:
((DefaultListModel)jList1.getModel()).addElement(Customers[i].getName());
来源:https://stackoverflow.com/questions/16214480/adding-elements-to-a-jlist