2017-03-05 1 views
-1

Ich habe eine Klasse namens Persone (Völker), es ist nur eine Arraylist Objekt Person (Person). Ich möchte dies das Objekt Persone für die Befüllung einer JComboBox verwenden. Ich habe viele Post gelesen, und ich habe verstanden, dass ich DefaultComboBoxModel(E[] items) verwenden muss, aber natürlich habe ich etwas verpasst. Ich habe einen Fehler gemacht. Kann ich ein Beispiel haben? Und wie man den ausgewählten Artikel einstellt oder bekommt?JComboBox Populetd mit meinem Objekt

Das ist meine Klasse:

public class Persone { 

    private ArrayList<Persona> el = new ArrayList<Persona>(); 
     public Persone() { 
    } 

    public ArrayList<Persona> getEl() { 
     return el; 
    } 

    public void setEl(ArrayList<Persona> el) { 
     this.el = el; 
    } 

    public boolean delPersonaFromPersone(Persona persona) { 
     return this.el.remove(persona); 
    } 

    public boolean addPersonaToPersone(Persona persona) { 
     return this.el.add(persona); 
    } 

    public boolean substPersonaInPersone(Persona persona, Persona withPersona) { 
     if (!this.el.remove(persona)) 
      return false; 

     return this.el.add(persona); 
    } 


    @Override 
    public String toString() { 
     return "Persone [el=" + el + "]"; 
    } 
} 

Antwort

1

Sie nicht ein Objekt, das eine Arraylist zu einem Kombinationsfeld hinzufügen können.

Stattdessen müssen Sie einzelne Persona Objekt zu der Kombinationsfeld hinzufügen.

Dann müssten Sie einen benutzerdefinierten Renderer zum Anzeigen des Objekts Persona bereitstellen.

Weitere Informationen und Beispiele dazu finden Sie unter Combo Box With Custom Renderer.

+0

Ok, ich eine Arraylist nicht hinzufügen kann, aber ich es in ein Array umwandeln kann und es verwenden? –

+0

@ FabrizioRestori, ich denke, Sie könnten die ArrayList.toArray (...) Methode verwenden. Oder Sie könnten Schleifencode schreiben, um jedes Element direkt aus der ArrayList in das Kombinationsfeld zu kopieren. – camickr

0

Ich habe meinen Fehler gefunden (einige schlechte Zuordnung). Zur Verwendung in JComboBox habe ich ein neues Array von ArrayList gemacht. Hier mein Code:

JComboBox<Persona> cbResponsabile = new JComboBox<Persona>(); 

Persona[] array = persone.getEl().toArray(new Persona[persone.getEl().size()]); 

cbResponsabile.setModel(new DefaultComboBoxModel(array)); 
contentPanel.add(cbResponsabile); 

// ..... 
// assignment 
// persona is an element of array 
cbResponsabile.setSelectedItem(persona);