我想通过值而不是索引在JComboBox中设置选定的索引。怎么做?例
public class ComboItem {
private String value;
private String label;
public ComboItem(String value, String label) {
this.value = value;
this.label = label;
}
public String getValue() {
return this.value;
}
public String getLabel() {
return this.label;
}
@Override
public String toString() {
return label;
}
}
JComboBox test = new JComboBox();
test.addItem(new ComboItem(0, "orange"));
test.addItem(new ComboItem(1, "pear"));
test.addItem(new ComboItem(2, "apple"));
test.addItem(new ComboItem(3, "banana"));
test.setSelectedItem("banana");
好的,我已经稍微修改了我的问题。我忘了我在JComboBox中有一个自定义项目,这使其变得更加困难。我不能做setSelectedItem,因为我在每个项目中都有一个ComboItem。因此,我该如何完成呢?
最佳答案
setSelectedItem("banana")
。您可以只阅读the javadoc自己找到它。
编辑:由于您更改了问题,我将更改答案。
如果要选择带有“香蕉”标签的项目,则有两种解决方案:
setSelectedItem(theFoundItem)
(或setSelectedIndex(theFoundIndex)
)equals
中的hashCode
和ComboItem
,以使两个具有相同名称的ComboItem
实例相等,只需使用setSelectedItem(new ComboItem(anyNumber, "banana"))
即可;