我有一个返回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()
方法并在JList
中显示其所有动物ID。我怎么能这样做?
答案 0 :(得分: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];
}
答案 1 :(得分:1)
您的AbstractListModel
是匿名的,因此请先将其推广到指定的类,例如MyListModel
。然后向MyListModel
添加一个方法,该方法接受Map
或调用allAnimal()
以获取一个方法。在您的模型中引用Map
之后,您可以将keySet
转换为数组,如图所示here,并使用get()
每个Map
的密钥1}} getElementAt()
中的条目。 (可选)使用Arrays.sort()
对数组进行排序。