2011-01-06 17 views
20

Ich hole die Datenwerte erfolgreich aus der Datenbank. Ich habe sie auch in einem String[] Array gespeichert. Ich muss das String-Array als die Elemente der JComboBox als Reaktion auf die Tastenaktion geladen werden. Wie kann ich die Elemente der JComboBox immer dann erneut laden, wenn eine Taste gedrückt wird, da die abgerufenen Werte von der gedrückten Taste abhängen. Einfach muss ich die JComboBox Einzelteile dynamisch erneuern.JComboBox dynamisch ändern

Antwort

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

Vielen Dank für Ihre Antwort helfen, aber können Sie bitte einen Code schreiben, dies illustrarte. es wird sehr hilfreich sein. Ich bin mir nicht sicher, was ich in der DefaultComboBoxModel-Klasse schreiben soll. –

+0

Das ist der Code. Sie schreiben nichts in der DefaultComboBoxModel-Klasse. Sie erstellen das Modell einfach mit dem String-Array und fügen das Modell dann dem Kombinationsfeld hinzu. – camickr

6

Sie haben ein paar Optionen. Sie können removeAllItems() (oder eine der anderen Entfernungsmethoden) und addItem(Object anObject) verwenden, um die auswählbaren Objekte zu manipulieren. Oder Sie könnten eine ComboBoxModel implementieren und erlauben es Daten von Ihrem Array zu liefern.

6

Dies ist die Demo zur Veranschaulichung Standardkombinationsfeld Modell

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

Ich hoffe, dass dieser kleinen :)