Как выяснить индекс "подсвеченного" элемента в выпавшем списке JComboBox-a? - Java

Узнай цену своей работы

Формулировка задачи:

Привет коллеги. Поскажите как выяснить индекс "подсвеченного" элемента в выпавшем списке JComboBox-a? На панели размещён мой наследник JComboBox-a. Если я при выборе значения из выпавшего списка использую клавиатуру, то:
this.addItemListener(new java.awt.event.ItemListener() {
 
public void itemStateChanged(ItemEvent e) {e.getItem();}});
обеспечивает меня "текущим" айтемом. Если-же я прокручиваю список мышкой, то увы , вышеупомянутый ItemListener не получает событий. На экране в выпавшем попап-списке я вижу как на мою мышиную возню реагирует маркер "текущего" положения, а вот какие события генерируются и кто их может услышать — не ясно. Подскажите , как узнать тот элемент списка, который в сей момент "подсвечен" ? Насколько я понимаю ПОДСВЕЧЕННЫЙ элемент не выбрам пока по нему не щёлкнешь кнопкой мышки или клавиатуры. Но вот задача в том и состоит узнать индекс ПОСВЕЧЕННОГО элемента ?

Решение задачи: «Как выяснить индекс "подсвеченного" элемента в выпавшем списке JComboBox-a?»

textual
Листинг программы
ComboPopup cp = (ComboPopup) this.getUI().getAccessibleChild(this,0);
 
    cp.getList().getSelectionModel().addListSelectionListener(new javax.swing.event.ListSelectionListener() {
      public void valueChanged(ListSelectionEvent e)  {
        if(currentIndex<e.getLastIndex())
          currentIndex = e.getLastIndex();
        else
          currentIndex = e.getFirstIndex();
      }
    }
 
);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.111 из 5
Похожие ответы