【发布时间】:2019-11-10 14:13:51
【问题描述】:
在这个问题 (Adding items to a JComboBox) 中,描述了如何将 Item 添加到 JComboBox。
这将允许在 JComboBox 中存储一个对象,并覆盖 toString() 方法,JComboBox 将显示一个值并返回整个对象。
我已经包含了以下课程:
public class ComboItem {
private String key;
private String value;
public ComboItem(String key, String value)
{
this.key = key;
this.value = value;
}
@Override
public String toString()
{
return key;
}
public String getKey()
{
return key;
}
public String getValue()
{
return value;
}
}
然后我尝试将其添加到我的 JComboBox comboTimeZoneChart:
comboTimeZoneChart.addItem(new ComboItem("bar", "foo"));
但我在 Netbeans 中收到以下错误:
incompatible types: ComboItem cannot be converted to String
我有仔细检查,但我不知道可能出了什么问题。 这个问题/问题也反映在包含的原始问题的已接受答案中有 5 个赞成票,所以看来我不是唯一一个面临这个问题的人。
我包含错误的图像:
【问题讨论】:
-
你确定这不是使用错误的泛型那么简单,即在你应该使用
JComboBox<ComboItem>时使用JComboBox<String>? -
事实上,这必须是问题所在——组合框、其模型或两者的通用类型不正确。
-
恐怕你没有在你的问题中发布最重要的代码——你在哪里声明你的组合框及其模型
-
感谢您指出重复并隔离问题。问题恰好位于标记为具有相同问题/答案的帖子中。不管它看起来多么简单,我都不知道你可以定义 JComboBox
。此外,当我使用 Netbeans UI builder 时,我从未见过代码 JComboBox 的那部分。我已将 JComboBox 替换为 JComboBox 并且问题消失了。
标签: java swing jcombobox openjdk-8