views:

298

answers:

3

I want to add objects to a JList which has already been instantiated by the Netbeans genrated code.

I can't pass my own list model in the JList constructor as I can't modify the Netbeans generated code.

How can I add object to that JList.

A: 

Modify the generated list model. You can get it via:

See JList#getModel()

nfechner
This will only work if you've constructed the JList with a ListModel or Vector. Instantiating is using the default constructor or Object[] will create a read-only ListModel.
Adamski
You're right, of course. In that case you would probably have to set a new model.
nfechner
+2  A: 

As per my comment to nfechner, it really depends on how you've constructed your JList. If you've used the JList(ListModel) or JList(Vector) constructors you can potentially amend the consents of your model through a call to getModel(), or in the case of Vector, simply maintain a reference to the Vector and amend that (providing you fire an event aftewards to notify any model listeners).

However, I'm fairly sure there are "hooks" in the Netbeans IDE to allow you to specify a specific model implementation, which will then cause the code to be auto-generated to include this.

Adamski
The Netbeans generated the JList by passing the AbstractListModel. And I didn't find the way change the model so that it can generate that JList acc. to that model...
Yatendra Goel
A: 

It's possible to set your own model to the already instantiated JList, see JList#setModel(ListModel)

You can pass the model extended from DefaultListModel, which supports add and remove methods.

Taisin