0 / 0 / 0
Регистрация: 17.08.2010
Сообщений: 4

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

14.12.2006, 20:13. Показов 4050. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет коллеги.

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

На панели размещён мой наследник JComboBox-a. Если я при выборе значения из выпавшего списка

использую клавиатуру, то:
Java
1
2
3
this.addItemListener(new java.awt.event.ItemListener() {
 
public void itemStateChanged(ItemEvent e) {e.getItem();}});
обеспечивает меня "текущим" айтемом. Если-же я прокручиваю список мышкой, то увы , вышеупомянутый ItemListener не получает событий.

На экране в выпавшем попап-списке я вижу как на мою мышиную возню реагирует маркер "текущего" положения, а вот какие события генерируются и кто их может услышать — не ясно.

Подскажите , как узнать тот элемент списка, который в сей момент "подсвечен" ?

Насколько я понимаю ПОДСВЕЧЕННЫЙ элемент не выбрам пока по нему не щёлкнешь кнопкой мышки или клавиатуры.

Но вот задача в том и состоит узнать индекс ПОСВЕЧЕННОГО элемента ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2006, 20:13
Ответы с готовыми решениями:

Дан список чисел. Выведите значение наибольшего элемента в списке, а затем индекс этого элемента в списке
Дан список чисел. Выведите значение наибольшего элемента в списке, а затем индекс этого элемента в списке. Если наибольших элементов...

Список из двух элементов: значение наибольшего элемента в списке и индекс этого элемента в списке
Напишите программу с функцией, которая для списка, переданного аргументом, возвращает список из двух элементов: значение наибольшего...

Выведите значение наибольшего элемента в списке, а затем индекс этого элемента в списке
4.Выведите значение наибольшего элемента в списке, а затем индекс этого элемента в списке. Если наибольших элементов несколько, выведите...

6
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
14.12.2006, 20:38
getSelectedIndex() не подходит?
0
0 / 0 / 0
Регистрация: 17.08.2010
Сообщений: 4
14.12.2006, 20:49  [ТС]
Получается ЕСЛИ выбор элемента делается клавиатурным способом.

Если же в выпавшем списке крутить колесом мышки то getSelectedIndex() возвращает индекс ранее выбранного элемента,

а не того на котором у меня в каждый конкретный момент стоит подсветка.

Если щёлкнуть кнопкой мыши то собственнон СЕЛЕКТ произойдёт и getSelectedIndex() вернёт корректный номер выбранного.

Пока же ты не "ВЫБРАЛ" элемент, а просто его подсветил в списке выпавших он по всей видимости ещё "НЕ ВЫБРАН".

Однако задача в том и состоит , узнать номер ПОДСВЕЧЕННОГО элемента, а не окончательно выбранного.
0
mishgun
15.12.2006, 05:39
addMouseWheelListener() - MouseWheelEvent - getWheelRotation()
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
15.12.2006, 12:58
Дааа, задачка... А нельзя ли как-нть иначе решить вопрос? Зачем узнавать подсвеченный? Может без этого знания можно обойтись?
0
1 / 1 / 1
Регистрация: 05.01.2010
Сообщений: 235
15.12.2006, 14:48
Такое мне нужно никогда не было и проверить не могу, но я бы тут послушал изменения свойств (PropertyChangeListener). В обработчике написать System.out.println(event.getPropertyName ()) и глянуть что там за свойства меняются - имена обычно впролне говорящие.
0
0 / 0 / 0
Регистрация: 17.08.2010
Сообщений: 4
15.12.2006, 16:17  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
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();
      }
    }
 
);
Это решение мне подсказали на форуме RSDN. Проверил - работает !

Честно скажу - мне понравилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2006, 16:17
Помогаю со студенческими работами здесь

JComboBox: кнопка в выпадающем списке для выбора элемента
Доброго времени суток. Пытаюсь сделать следующее: имеется экземпляр JComboBox. При нажатии на него выпадает список неких элементов....

List<T> Как запомнить индекс элемента в списке?
Суть задачи, есть программа которая удаляет нечетные числа в списке, нужно после удаления вывести список , в котором элементы сохранят...

Индекс минимального элемента в типизированном списке
List&lt;double&gt; sort = new List&lt;double&gt;(); Как?

Найти индекс элемента в указанном списке
22. Напишите программу на Python, чтобы найти индекс элемента в указанном списке.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru