2010-04-26 6 views
7

defino enumeraciones:cómo utilizar JComboBox usando Enumeración de cuadro de diálogo

enumeración tipoElemento {Primera, Segunda, Tercera};

public class artículo

{

privada tipoElemento enmItemType;

...

}

¿Cómo lo uso dentro de la caja de diálogo usando JComboBox? Significa, dentro del cuadro de diálogo, el usuario tendrá un cuadro combinado con (Primero, Segundo, Tercero). Además, ¿es mejor usar algún tipo de ID para cada numerador? (Entero)

gracias.

+0

posible duplicado de [Rellenar JComboBox oscilación de Enum] (http://stackoverflow.com/questions/1459069/populating-swing-jcombobox-from-enum) – oers

Respuesta

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

Suponiendo que usted sabe cómo codificar un cuadro de diálogo con un JComboBox, siguiente es algo que puede hacer para cargar los valores de enumeración a un cuadro combinado:

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

Luego de obtener valor de enumeración que podría hacer

(ItemType)myEnumCombo.getSelectedItem(); 

No hay necesidad de asignar identificadores a enumeraciones a menos que la lógica de la aplicación necesite tener asignada una identificación significativa. La enumeración ya tiene un sistema de identificación único.

21

Este es el método que he utilizado:

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

Sustitución del método toString le permiten proporcionar texto de la pantalla que se presenta al usuario opciones significativas.

Nota: También he cambiado itemType a ItemType, ya que los nombres de los tipos siempre deben tener un encabezado.

Cuestiones relacionadas