0
我正在做的是從地圖獲取元素並將它們添加到JList以顯示在GUI上。我想知道如何按字母順序排列名稱。按名稱排序JList
private void refreshShopsList() {
gameShopsJList.setModel(new javax.swing.AbstractListModel<String>() {
public int getSize() {
return ShopsLoader.getShops().size();
}
public String getElementAt(int i) {
return getShopByIndex(i).getName();
}
});
}
private Shop getShopByIndex(int index) {
Iterator<Entry<String, Shop>> it = ShopsLoader.getShops().entrySet().iterator();
int count = -1;
while(it.hasNext()) {
Entry<String, Shop> entry = it.next();
count++;
if (count == index)
return entry.getValue();
}
return null;
}
/**
* The map of the shops
*/
private static final Map<String, Shop> shops = new HashMap<String, Shop>();
public static Map<String, Shop> getShops() {
return shops;
}
完成的AbstractListModel(空torzo),那麼將有可能提出好的建議......,爲更好地幫助越早張貼SSCCE,短,可運行,編譯,從局部變量或枚舉中爲Map提供硬編碼值 –
mKorbel
只需將'Map'從'HashMap'更改爲'TreeMap'就可以完成這項工作。但是,對每個'getElementAt'調用執行線性映射迭代的列表模型的設計都值得懷疑。 – Holger
只有一列使用'JTable'。 'JTable'通過點擊標題內置了排序。默認分揀機可以對字符串進行排序 – Robin