Как JComboBox всех зарулил

И снова Swing, и снова баг - на этот раз в JComboBox. Состоит в следующем:


JComboBox box = new JComboBox();
box.addItem("x");
box.addItem("x");
box.setSelectedIndex(1);
System.out.println(box.getSelectedIndex())


Этот код напечатает в консоль не 1, как ожидалось, а 0. Баг состоит в том, что метод getSelectedIndex() возвращает индекс первого попавшегося элемента, равного селектированному, причем сравнение выполняется методом equals().

В развернувшейся бурной дискуссии сотрудники Sun пытаются доказать, что данное поведение корректно, поскольку оба элемента x равны. Лично я не согласен: так мог бы вести себя метод getSelectedItem(), но от getSelectedIndex() я бы ожидал возврат выбранного индекса , а не какого-нибудь другого.

Багу #4133743 уже более 10-ти лет. Интересно состояние данного тикета: "11-Closed, Not a Defect, bug". :))

2 коммент. | добавить комментарий :: Как JComboBox всех зарулил

  1. Фигасе логика у парней из Sun. Надо прижигать :).

  2. Хотя тенденция такова, что они сейчас много времени уделяют именно UI-ным штучкам и красивостям. Тоже неплохо, вообще говоря...
    А на старый баг всегда найдется воркараунд))

Отправить комментарий