Dynamically change JComboBox

前端 未结 4 503
天命终不由人
天命终不由人 2020-12-15 17:32

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

相关标签:
4条回答
  • 2020-12-15 17:42

    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 :)

    0 讨论(0)
  • 2020-12-15 17:48

    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 ComboBoxModeland allow it to serve up data from your array.

    0 讨论(0)
  • 2020-12-15 17:50

    It also works without DefaultComboBoxModel...

    JComboBox op=new JComboBox(new String[] {"d","e","f"});
    op.removeAllItems();
    String[] new_entries=new String[] {"a","b","c"}
    for (String s : new_entries) {
         op.insertItemAt(s, op.getItemCount());
    }
    op.setSelectedIndex(0);
    

    Guess which values you'll see...

    0 讨论(0)
  • 2020-12-15 17:56
    DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( yourStringArray );
    comboBox.setModel( model );
    
    0 讨论(0)
提交回复
热议问题