簡體   English   中英

如何在JCombobox中隱藏項目

[英]How to hide items in JCombobox

我有一個使用Swing-JCombobox的應用程序。

我准備了標准的DefaultComboBoxModel,並將所有項目添加到模型中,但是當他想從PopupMenu中選擇某些項目時,我想向用戶隱藏一些項目。

我不想更改模型(刪除項目)。

您可以將項目保留在單獨的主列表中,並根據用戶操作動態創建過濾后的模型。

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

如果您不希望使用這種方法,則可以使用具有不同項目的不同模型,並將它們適當地設置到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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM