GlazedLists AutoComplete Изменение выбора не работает - PullRequest
0 голосов
/ 16 июля 2009

Я использую библиотеку GlazedLists (1.8) в своем проекте, и у меня возникли проблемы с правильной работой автозаполнения в моих полях со списком. Я установил KeyListener на comboBox.getEditor().getEditorComponent() для перехвата, когда пользователь нажимает клавишу ввода, чтобы я мог что-то сделать в зависимости от того, какой элемент он выбрал в поле со списком.

Я установил его на JComboBox в порядке, и фильтрация работает, но когда я использую клавиши со стрелками для изменения выбора, вызов comboBox.getSelectedItem() возвращает то, что было выбрано до использования клавиш со стрелками для изменения выбора.

Кроме того, когда это происходит (с помощью клавиш со стрелками), вызов comboBox.getSelectedIndex() возвращает -1.

Я бы предположил, что мне не нужно иметь дело с ключевыми событиями, чтобы изменить выбор самостоятельно (это должно быть частью кода GlazedLists), поэтому у кого-нибудь есть идеи, если это ошибка или я делаю что-то не так? Некоторое время я гуглил, но не нашел эту ошибку.

РЕДАКТИРОВАТЬ: Я вполне уверен, что это ошибка сейчас. Я попытался запустить его в Windows, и он работал нормально, но, похоже, он душит OS X. LnF в OS X, кажется, вызывает много ошибок в GlazedLists.

1 Ответ

0 голосов
/ 17 июля 2009

Вы пробовали свой список ключей с помощью комбинированного списка, который не поддерживается списком событий GlazedLists?

Исходя из того, что вы описываете, это звучит как проблема в представлении (или просто порядок возникновения событий или семантика блокировки списка), а не проблема с GL в частности ... Не видя код, трудно сказать.

Я бы посоветовал вам собрать короткое и приятное приложение-пример, которое показывает поведение (или даже лучше, модульный тест - но это может быть сложно при нажатии клавиши), и публиковать в GL listserv - обязательно включить информацию о Mac против не Mac. Конечно, когда у вас есть ответ, опубликуйте его здесь для потомков: -)

Вы также можете попробовать другой L & F на компьютере Mac (я думаю, что вы все равно можете это сделать) и посмотреть, если проблема все еще возникает. По крайней мере, это дало бы некоторое представление о том, что может происходить.

...