web-dev-qa-db-fra.com

Changer dynamiquement JComboBox

Je récupère les valeurs de données de la base de données avec succès. Je les ai également stockés dans un String[] tableau. J'ai besoin de charger le tableau String en tant qu'éléments du JComboBox en réponse à l'action clé effectuée. Comment puis-je recharger les éléments de JComboBox chaque fois qu'une touche est enfoncée car les valeurs récupérées dépendent de la touche enfoncée. Plutôt simplement, j'ai besoin de rafraîchir dynamiquement les éléments JComboBox.

22
Suman.hassan95
DefaultComboBoxModel model = new DefaultComboBoxModel( yourStringArray );
comboBox.setModel( model );
36
camickr

Vous avez plusieurs options. Vous pouvez utiliser removeAllItems() (ou l'une des autres méthodes de suppression) et addItem(Object anObject) pour manipuler les objets sélectionnables. Ou vous pouvez implémenter un ComboBoxModel et lui permettre de servir les données de votre tableau.

6
unholysampler

Ceci est la démo pour illustrer le modèle de combo box par défaut

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);    
    }
}

J'espère que cela aidera peu :)

6
Alice