Несколько JComboBox с одинаковыми данными, каждый элемент выбирается один раз - PullRequest
0 голосов
/ 07 декабря 2018

Я впадаю в отчаяние ...:

У меня есть КАДРА с 40 JComboBoxes.Сначала они предлагают все те же предметы.Если я выберу элемент в одном конкретном ComboBox, его следует выбрать там, и он больше не будет доступен во всех остальных 39 коробках.

Я долго пытался использовать ComboBoxModel, но теперь думаю, что это не так.Имеет смысл: Момент, когда я удаляю выбранный элемент из модели, он также удаляется из поля, в котором он был выбран.

Так имеет ли смысл делать это так:

  • Иметь 40 MyComboBox в классе GUI
  • Каждый MyComboBox реализует ItemListener
  • Если элемент выбран, элемент удаляется из других 39 списков;если он отменен, он добавляется в остальные 39 списков (но если я хочу сделать это так, слушатель не должен быть собственным классом, но метод itemEventChanged должен быть анонимно реализован в GUI?!)

Есть лучший способ, не так ли?Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 09 декабря 2018
       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
             }
        }
    }

Предполагается, что у вас есть прослушиватель действий в каждом индексе массива Combo Box

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...