Изменить список предметов на коробке JCombo - PullRequest
3 голосов
/ 23 февраля 2012

У меня есть список элементов в окне JCombo, основанный на другом событии, я хочу изменить элементы в списке. У меня есть такой метод

void changeChoices(Array[] foo) 
 {
   JComboBox.removeAllItems();

  for (int i=0;i < foo.length ; ++i)
     JComboBox.addItem(foo[i]);

 } 

это действительно?

1 Ответ

3 голосов
/ 23 февраля 2012

Ваш код недействителен с точки зрения синтаксиса.

  • foo представляется массивом Array объектов, вы уверены, что используете комбинированный список из массива Array объектов?

  • У вас есть JComboBox.removeAllItems();, это недопустимо, поскольку у класса JComboBox нет статического метода с именем removeAllItems().

  • Внутри цикла вы используете JComboBox.addItem(foo[i]);, это снова недопустимо по аналогичной причине, объясненной выше, у класса JComboBox нет статического метода с именем addItem().

Допустимый метод может быть таким:

String[] oldValues = new String [5];
JComboBox comboBox = new JComboBox(oldValues);

public void changeChoices ( String [] newValues )
{
   comboBox.removeAllItems();

   for( int i = 0; i < newValues.length; i++ )
       comboBox.addItem( newValues [ i ] );
}

И последнее, но не менее важное, если вы удаляете все значения из комбинированного списка и добавляете совершенно новые,тогда вы должны обрабатывать их соответствующие события в вашем коде.Возможно, вы добавляете ItemListener к вашему списку и реализуете события выбранного элемента в методе itemStateChanged(ItemEvent event).Таким образом, вы должны реализовать то, что произойдет, если в поле со списком будет выбрано новое добавленное значение.Надеюсь, этот пост полезен и имеет смысл.

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