Reputation: 4005
I am fetching the data values from the database successfully. I have also stored them into a String[]
array. I need to load the String array as the items of the JComboBox
in response to key actionperformed. How can I reload the items of the JComboBox
whenever a key is pressed as the fetched values depend on the key pressed. Rather simply, I need to dynamically refresh the JComboBox
items.
Upvotes: 26
Views: 58871
Reputation: 324098
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( yourStringArray );
comboBox.setModel( model );
Upvotes: 41
Reputation: 2233
This is the demo for illustrating default combo box model
public class ComboPanel extends JPanel {
JComboBox jcbo;
// this is constructor
public ComboPanel(ArrayList<String> items) {
jcbo = new JComboBox();
// getting exiting combo box model
DefaultComboBoxModel model = (DefaultComboBoxModel) jcbo.getModel();
// removing old data
model.removeAllElements();
for (String item : items) {
model.addElement(item);
}
// setting model with new data
jcbo.setModel(model);
// adding combobox to panel
this.add(jcbo);
}
}
I hope this will help little :)
Upvotes: 7
Reputation: 17321
You have a couple of options. You can use removeAllItems()
(or one of the other remove methods) and addItem(Object anObject)
to manipulate the selectable objects. Or you could implement a ComboBoxModel
and allow it to serve up data from your array.
Upvotes: 7