如何隐藏JCombobox中的项目

时间:2015-08-25 14:31:45

标签: java jcombobox

我有一个使用Swing的应用程序 - JCombobox。

我准备了标准的DefaultComboBoxModel并且我将所有项目添加到模型中,但是当我想从PopupMenu中选择它们时,我想向用户隐藏一些项目。

我不想更改模型(删除项目)。

5 个答案:

答案 0 :(得分:2)

您可以将项目保留在单独的主列表中,并根据用户操作动态创建过滤后的模型。

答案 1 :(得分:0)

最好的方法是在模型中添加/删除项目。

如果您不想要这种方法,可以使用不同的模型和不同的项目,并将它们适当地设置为JComboBox。

答案 2 :(得分:0)

如果我的问题正确,可能会使用以下文章 - 而不是删除该项目,您可以根据某些条件禁用它:

article

答案 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);
    }
}