bun*_*112 0 java swing combobox
我需要我的组合框才能拥有组织的简称.问题是我可以在下拉列表中看到组织名称,但实际上无法选择它.我的错误在哪里?
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();
}
}
Run Code Online (Sandbox Code Playgroud)
设定型号:
query =session.createQuery("from Organization where isMain = 0");
List orgs=query.list();
toComboBox.setModel(new ToComboBoxModel(orgs));
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我怀疑你的setSelectedItem()方法是使用==而不是比较对象.equals()
考虑使用已经实现有用方法的DefaultComboBoxModel.
编辑:同样根据文档,您应该在调用ListDataListenersetSelected时调用所有已注册的对象.
使用a DefaultComboBoxModel非常简单.您创建一个新DefaultComboBoxModel添加要包含getSelectedItem()的元素,然后调用以检索当前选定的元素.
| 归档时间: |
|
| 查看次数: |
17610 次 |
| 最近记录: |