2011-01-06 25 views
20

Estoy obteniendo los valores de datos de la base de datos con éxito. También los he almacenado en una matriz String[]. Necesito cargar el conjunto de cadenas como los elementos del JComboBox en respuesta a la acción clave realizada. ¿Cómo puedo volver a cargar los elementos del JComboBox cada vez que se presiona una tecla, ya que los valores obtenidos dependen de la tecla presionada. Simplemente, necesito actualizar dinámicamente los elementos JComboBox.Cambie dinámicamente JComboBox

Respuesta

29
DefaultComboBoxModel model = new DefaultComboBoxModel(yourStringArray); 
comboBox.setModel(model); 
+0

Gracias por su respuesta, pero puede usted por favor enviar un código para illustrarte esto. será muy útil. No estoy seguro de qué escribir en la clase DefaultComboBoxModel. –

+0

Ese es el código. No escribe nada en la clase DefaultComboBoxModel. Simplemente crea el modelo usando su matriz de cadenas y luego agrega el modelo al cuadro combinado. – camickr

6

Tienes un par de opciones. Puede usar removeAllItems() (o uno de los otros métodos de eliminación) y addItem(Object anObject) para manipular los objetos seleccionables. O bien, podría implementar un ComboBoxModel y permitir que sirva datos desde su matriz.

6

Esta es la demostración para ilustrar combinado por defecto modelo de caja

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

espero que esto ayudará a pequeños :)