Java Swing:为JComboBox实现我的ComboboxModel
我需要在组合框中输入组织的简称。问题是我 在下拉列表中看到组织名称,但实际上 选择它。我的错误在哪里?
public class ToComboBoxModel extends AbstractListModel implements ComboBoxModel { private String selectedItem;
private List<Organization> orgs;
public ToComboBoxModel(List orgs) {
this.orgs = orgs;
}
@Override
public String getSelectedItem() {
return selectedItem;
}
@Override
public void setSelectedItem(Object newValue) {
for (Organization o: orgs){
if (newValue==o){
selectedItem=o.getShortName();
break;
}
}
}
@Override
public int getSize() {
return orgs.size();
}
@Override
public String getElementAt(int i) {
return orgs.get(i).getShortName();
}
}
设定模式:
query =session.createQuery("from Organization where isMain = 0");List orgs=query.list();
toComboBox.setModel(new ToComboBoxModel(orgs));
提前致谢!
回答:
我怀疑这是您的setSelectedItem()
方法使用==
而不是比较对象.equals()
考虑使用已经实现有用方法的DefaultComboBoxModel。
:同样根据文档,当调用ListDataListener
setSelected时,您应该调用所有注册的对象。
使用a
DefaultComboBoxModel
非常简单。创建一个新DefaultComboBoxModel
添加元素,使其包含在其中,然后调用getSelectedItem()
以检索当前选定的元素。
以上是 Java Swing:为JComboBox实现我的ComboboxModel 的全部内容, 来源链接: utcz.com/qa/419761.html