Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 17.08.2010
Сообщений: 4

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

14.12.2006, 20:13. Показов 4021. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru