首页 > 解决方案 > 具有相同数据的多个 JComboBoxes,每个项目可选择一次

问题描述

我在这里越来越绝望......:

我确实有一个带有 40 个 JComboBox 的 FRAME。起初,他们提供所有相同的项目。如果我在一个特定的 ComboBox 中选择项目,则应该在那里选择它,并且不再在所有其他 39 个框中可用。

我尝试使用 ComboBoxModel 很长一段时间,但现在我认为它没有任何意义:在我从模型中删除所选项目的那一刻,它也从它被选中的 Box 中删除。

这样做是否有意义:

有更好的方法,不是吗?非常感谢你的帮助!

标签: javaswingjcombobox

解决方案


       for(int x =0;x<YourComboBoxArray.length();x++
    {
        if(e.getSource()==YourComboBoxArray[x])
        {
             try
             {
               ArrayList <String> OptionsList = new ArrayList();
               for(int i=0;i<YourComboBoxArray[x].getItemCount();i++)
               {
                     OptionsList.add(TeamPlayercmbx[x].getItemAt(i).toString();
               }
               DefaultComboBoxModel DCMB = new DefaultComboBoxModel(OptionsList.toArray());
               YourComboBoxArray[x+1].setModel(DCMB);
               YourComboBoxArray[x+1].removeItem(YourComboBoxArray[x].getSelectedItem());
             }
             catch(Exception ex)
             {
                 //Log your errors or whatever you want to do if it's the last ComboBox in the Array
             }
        }
    }

这假设您在组合框数组的每个索引上都有一个动作侦听器


推荐阅读