В настоящее время у меня есть прослушиватель выбора списка прослушивания JList.
private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
// When the user release the mouse button and completes the selection,
// getValueIsAdjusting() becomes false
if (evt.getValueIsAdjusting()) {
/*
In certain situation, I may want to prevent user from selecting other
than current selection. How can I do so?
*/
}
}
В определенных ситуациях я могу запретить пользователю выбирать другой вариант, кроме текущего. Как я могу это сделать?
Кажется, слишком поздно, когда я получаю ListSelectionEvent. Но если я хочу сделать это до того, как произойдет ListSelectionEvent, я не знаю, что пользователь пытается выбрать другое.
Вот один из сенарио.
JList содержит список названий проектов.
Таким образом, всякий раз, когда пользователь выбирает новый элемент списка, нам нужно повернуть представление из текущего проекта и отобразить новый проект.
Тем не менее, текущий проект может быть еще не сохранен.
Следовательно, если текущий проект еще не сохранен, мы запросим подтверждение пользователя "Сохранить проект?" (Да, Нет, Отмена)
Когда пользователь выбирает «Отмена», это означает, что он хочет отменить действие «Выбрать другой проект». Он хочет придерживаться текущего выбора JList.
Мы откроем диалоговое окно подтверждения в дескрипторе события jList1ValueChanged.
Но когда мы пытаемся придерживаться текущего выбора JList, уже слишком поздно.