Получение выбранной позиции объекта JComboBox - PullRequest
1 голос
/ 12 июля 2011

Я пытаюсь получить позицию (как целое число) объекта JComboBox, ComboBox генерируется и имеет прослушиватель действий, подобный этому

for (int d=0; d<i; d++)
        {
            titulos.addItem(listaPraBox[d]);
        }

  ActionListener comboListener = new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
            ItemSelectable is =(ItemSelectable)actionEvent.getSource();     
            objectoseleccionado = selectedString(is);
            DeskMetodos.listaTexto(objectoseleccionado);        
          }
        };
    titulos.addActionListener(comboListener);

Выполняется

 static private String selectedString(ItemSelectable is) {
    Object selected[] = is.getSelectedObjects();

    return ((selected.length == 0) ? "null" : (String)selected[0]);
  }

Но я хотел, чтобы позиция выбранного объекта получала строку из другого массива по этому int.

Возможно ли это вообще?Поиском, который я сделал, нет даже ссылки на это.

Ответы [ 2 ]

5 голосов
/ 12 июля 2011

JComboBox определяет getSelectedIndex(). Реализация состоит в том, чтобы просто пройтись по модели данных, проверяя равенство с getSelectedItem().

Это не относится к ItemSelectable, но не относится и к самой модели данных, поэтому вам может потребоваться использовать конкретный класс.

1 голос
/ 12 июля 2011

Вместо хранения элементов в ComboBox и необходимости использовать индекс для ссылки на другой массив значений. Просто сохраните объект в ComboBox с выводом toString(), который соответствует вашему текущему отображаемому значению, и прямой ссылкой на объект в массиве. Таким образом, любой объект, тянущий выбранный элемент или имеющий дело с полем со списком, может просто получить нужное ему значение и не должен также «знать» об этом другом массиве.

...