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。

:同样根据文档,当调用ListDataListenersetSelected时,您应该调用所有注册的对象。

使用a

DefaultComboBoxModel非常简单。创建一个新DefaultComboBoxModel添加元素,使其包含在其中,然后调用getSelectedItem()以检索当前选定的元素。

以上是 Java Swing:为JComboBox实现我的ComboboxModel 的全部内容, 来源链接: utcz.com/qa/419761.html

回到顶部