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