2

を返すメソッドがありHashMap、次のように定義されています。

public HashMap<Integer, Animal> allAnimal(){

      return returnsAHashMap;
   }

Animalそのクラスには次の値があります。

public Animal{

int animalID;
String animalName;

// i have declared getters/setters
}

を持つGUI画面があり、JList次のように定義されています。

l = new JList();
l.setModel(new AbstractListModel() {

        String[] v = new String[] {"animal id 1", "2", "3"};
        public int getSize() {
            return v.length;
        }
        public Object getElementAt(int index) {
            return v[index];
        }
    });

私がやりたいことは、JList に AnimalID を表示することです。allAnimal()メソッドを呼び出して、すべての Animal Id を に表示する方法を見つける必要がありますJList。これどうやってするの ?

4

2 に答える 2

1

あなたが試すことができます:

public int getSize() {
    return allAnimal().size();
}
public Object getElementAt(int index) {
    return allAnimal().keySet().toArray()[index];
}

または試すことができます:

        String[] v = null;
        v = allAnimals().keySet().toArray(v);
        public int getSize() {
            return v.length;
        }
        public Object getElementAt(int index) {
            return v[index];
        }
于 2012-12-10T11:02:28.523 に答える
1

あなたAbstractListModelは匿名なので、最初に名前付きクラスに昇格させMyListModelます。MyListModel次に、 を受け入れるか、取得するためのMap呼び出しを行うメソッドを に追加しますallAnimal()。モデルでへの参照を取得したら、ここに示すように を配列にMap変換し、 の各エントリにキーを使用できます。必要に応じて、 を使用して配列を並べ替えます。keySetget()MapgetElementAt()Arrays.sort()

于 2012-12-10T11:03:56.050 に答える