我有一个使用Swing的应用程序 - JCombobox。
我准备了标准的DefaultComboBoxModel并且我将所有项目添加到模型中,但是当我想从PopupMenu中选择它们时,我想向用户隐藏一些项目。
我不想更改模型(删除项目)。
答案 0 :(得分:2)
您可以将项目保留在单独的主列表中,并根据用户操作动态创建过滤后的模型。
答案 1 :(得分:0)
最好的方法是在模型中添加/删除项目。
如果您不想要这种方法,可以使用不同的模型和不同的项目,并将它们适当地设置为JComboBox。
答案 2 :(得分:0)
如果我的问题正确,可能会使用以下文章 - 而不是删除该项目,您可以根据某些条件禁用它:
答案 3 :(得分:0)
您可以创建自定义组合框模型。
答案 4 :(得分:0)
将对象缓存在列表中,然后使用它来构建组合...
List objects<ComboItem> = new ArrayList<ComboItem>;
objects.add(1,"Visible String 1", "Value 1");
objects.add(1,"Visible String 2", "Value 2");
objects.add(2,"Visible String 3", "Value 3");
...
class ComboItem
{
private int group;
private String key;
private String value;
public ComboItem(int group, String key, String value)
{
this.group = group;
this.key = key;
this.value = value;
}
@Override
public String toString()
{
return key;
}
public int getGroup()
{
return group;
}
public String getKey()
{
return key;
}
public String getValue()
{
return value;
}
}
...
从此处添加只有您需要的组的项目..用户选择。
遍历您的列表并根据其组添加您想要的列表。
for (String temp : objects) {
if (temp.getGroup == 1) {
comboBox.add(temp.key.temp.value);
}
}