2010-04-26 10 views
7

I definieren Aufzählungen:wie JComboBox verwenden mit Enum in Dialogfeld

Enum itemType {Erster, Zweiter, Dritter};

public class Artikel

{

privaten itemType enmItemType;

...

}

Wie kann ich es in Dialogfeld JComboBox verwenden? Bedeutet, innerhalb des Dialogfelds hat der Benutzer ein Kombinationsfeld mit (erster, zweiter, dritter). Ist es auch besser, eine Art ID für jeden Zähler zu verwenden? (Integer)

danke.

+0

möglich Duplikat [Bestücken Swing-JComboBox von Enum] (http://stackoverflow.com/questions/1459069/populating-swing-jcombobox-from-enum) – oers

Antwort

8
JComboBox combo = new JComboBox(itemType.values()); 
3

Angenommen, Sie wissen, wie man mit einem JComboBox ein Dialogfeld codieren, finden Sie etwas, das Sie Enum Werte tun können, auf ein Kombinationsfeld zu laden:

enum ItemType {First, Second, Third};  
JComboBox myEnumCombo = new JComboBox(); 
myEnumCombo.setModel(new DefaultComboBoxModel(ItemType.values()); 

Dann als Enum zu bekommen Wert, den Sie

tun könnten

Es ist nicht erforderlich, IDs zu Enums zuzuweisen, es sei denn, Ihre Anwendungslogik benötigt dringend eine aussagekräftige ID. Das Enum selbst hat bereits ein einzigartiges ID-System.

21

Dies ist der Ansatz, den ich verwendet habe:

enum ItemType { 
    First("First choice"), Second("Second choice"), Third("Final choice"); 
    private final String display; 
    private ItemType(String s) { 
     display = s; 
    } 
    @Override 
    public String toString() { 
     return display; 
    } 
} 

JComboBox jComboBox = new JComboBox(); 
jComboBox.setModel(new DefaultComboBoxModel(ItemType.values())); 

die Methode toString Aufschalten ermöglicht es Ihnen, Anzeigetext zur Verfügung zu stellen, die den Benutzer sinnvollen Entscheidungen präsentiert.

Hinweis: Ich habe auch geändert itemType zu ItemType als Typnamen sollten immer eine führende Kappe haben.