Java 如何在JCombobox中隐藏项目

Java 如何在JCombobox中隐藏项目,java,jcombobox,Java,Jcombobox,我有一个使用Swing-JCombobox的应用程序 我准备了标准的DefaultComboxModel,并将所有项目添加到该模型中,但当用户希望从弹出菜单中选择项目时,我想对用户隐藏一些项目 我不想更改模型(删除项目)。最好的方法是在模型中添加/删除项目 如果您不想采用这种方法,您可以使用不同的模型和不同的项目,并将它们适当地设置到JComboBox。如果我没有弄错您的问题,下面的文章可能有用-您可以根据某些条件禁用它,而不是删除该项目: 您可以将项目保留在单独的主列表中,并根据用户操作动态创

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

我准备了标准的DefaultComboxModel,并将所有项目添加到该模型中,但当用户希望从弹出菜单中选择项目时,我想对用户隐藏一些项目


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

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


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

如果我没有弄错您的问题,下面的文章可能有用-您可以根据某些条件禁用它,而不是删除该项目:


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

您可以创建自定义组合框模型。

将对象缓存在列表中,然后使用它来构建组合框

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