2017-03-05 3 views
-1

私はpersone(人々)と呼ばれるクラスを持っています、それは単なるオブジェクトペルソナ(人)のarraylistです。 私はこのオブジェクトを人口のために使用したいと思いますJComboBox。 私は多くの投稿を読んできましたが、私はDefaultComboBoxModel(E[] items)を使用したことを理解しましたが、もちろん、私は何かを見逃しました。私は間違いをした。例がありますか?選択したアイテムを設定または取得する方法は?私のオブジェクトでJComboBoxのpopuletd

これは私のクラスである:

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 + "]"; 
    } 
} 

答えて

1

あなたはコンボボックスにArrayListのを含むオブジェクトを追加することはできません。

代わりに、個別のPersonaオブジェクトをコンボボックスに追加する必要があります。

次に、Personaオブジェクトを表示するカスタムレンダラーを用意する必要があります。

詳細情報とこれを行う方法の例については、Combo Box With Custom Rendererをご覧ください。

+0

[OK]を、私はArrayListに追加することはできませんが、私は配列に変換し、それを使用することができますか? –

+0

@FabrizioRestori、ArrayList.toArray(...)メソッドを使用できると思います。または、ArrayListの各項目をコンボボックスに直接コピーするループコードを記述することもできます。 – camickr

0

私は間違いを見つけました(いくつかの悪い割り当て)。 JComboBoxで使用するために、私はArrayListから新しい配列を作成しました。 は、ここに私のコード:

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