gpt4 book ai didi

java - Java Swing JList 的键值对

转载 作者:行者123 更新时间:2023-12-02 11:17:34 25 4
gpt4 key购买 nike

我对 JComboBox 有这个解决方案,以获得键/值对的效果来显示文本但检索 ID,例如 ID=2 但文本是“Banana”。

我现在需要将其实现为 JList,但无法从返回的 JList 中获取对象以便我可以检索该值。

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;
}
}


DefaultListModel listmodel = new DefaultListModel();
JList cAktkod = new JList(listmodel);
int pos = cAktkod.getModel().getSize();

listmodel.add(pos, new ComboItem(resultSet.getString("MMCFI5"),resultSet.getString("CTTX40")));

但在这个阶段如果我这样做

cAktkod.getSelectedValue();

它返回一个对象,但我不知道如何让它给我我的 ComboItem 对象,以便我可以使用 getValue() 来代替

最佳答案

基本上,JList 不知道也不关心列表中的对象类型(即子类)。但是,如果您放入列表中的所有内容都是 ComboItem,那么您得到的对象将是 ComboItem。您只需对其进行强制转换即可告诉编译器它是什么类型。

Object selectedObj = cAktkod.getSelectedValue();
if (selectedObj instanceof ComboItem) {
ComboItem selectedItem = (ComboItem) selectedObj;
}
else {
// something has gone wrong!
}

关于java - Java Swing JList 的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com