我确实有一个具有不同值的组合框,例如“FT001”和“FT002 和“FT003”。 问题是,如果我在 FT001 之前添加 FT002,那么“FT002”始终是第一个。
现在我正在寻找一种可以按字母表排序的方法。
我使用以下代码来填充组合框:
public DefaultComboBoxModel getPraktijkenLijst(){
DefaultComboBoxModel listModel = new DefaultComboBoxModel();
listModel.addElement("Selecteer een praktijk");
int aantal = praktijkVerzameling.getAantalPraktijken();
int i = 0;
while(i < aantal){
listModel.addElement(praktijkVerzameling.getPraktijk(i).getPraktijkNaam());
i++;
}
return listModel;
}
“praktijkVerzameling”是一个充满对象的 ArrayList。
如果你们需要更多信息来帮助我,请询问:)
PS:我是荷兰人,所以如果这里有人是荷兰人,我会比英语更好地理解荷兰语,谢谢。
最佳答案
DefaultComboBoxModel.addElement(Object)
:在模型末尾添加一个项目。因此,您正在使用的数组列表可以在使用 model.addElement(Object)
函数添加到 model
之前进行排序。您可以使用比较器对 praktijkVerzameling
ArrayList
进行排序。例如,假设 praktijkVerzameling
是类类型 Praktijk
的数组列表:
DefaultComboBoxModel model = new DefaultComboBoxModel();
Collections.sort(praktijkVerzameling, new Comparator<Praktijk>(){
@Override
public int compare(Praktijk o1, Praktijk o2) {
return o1.getPraktijkNaam().compareTo(o2.getPraktijkNaam()) ;
}
});
for(Praktijk p : praktijkVerzameling)
model.addElement(p.getPraktijkNaam());
return model;
关于java - 如何在java中按字母顺序排列组合框? (使用 Netbeans IDE 7.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19859911/