2009-09-22 3 views
27

Desidero popolare uno java.swing JComboBox con valori da un Enum.Popolamento Swing JComboBox da Enum

ad es.

public enum Mood { HAPPY, SAD, AWESOME; } 

ed avere questi tre valori popolano una sola lettura JComboBox.

Grazie!

risposta

37

prova:

new JComboBox(Mood.values()); 
1

La soluzione proposta da @Pierre è buono. Di solito si utilizza un DefaultComboBoxModel o uno ComboBoxModel o collegamenti a ComboBoxModel per cose più complesse.

Per impostazione predefinita, JComboBox non è modificabile.

16

Se non si vuole (o non può) il cambiamento di inizializzazione con il costruttore di default, quindi è possibile utilizzare il metodo setModel():

JComboBox<Mood> comboBox = new JComboBox<>(); 
comboBox.setModel(new DefaultComboBoxModel<>(Mood.values())); 
+1

Nota [* Type Inference per Generic creazione istanze *] (http: //docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html) e [modello generico] (http://docs.oracle.com/javase/ 7/docs/api/javax/swing/DefaultComboBoxModel.html), nuovo in Java 7. – trashgod