Переопределить выбор списка в Swing - PullRequest
1 голос
/ 17 февраля 2011

Я хочу сделать выбор списка таким, чтобы при первом выборе элемента он выбирался после этого, когда я выбираю второй элемент, тогда должны выбираться оба элемента, т. Е. Первый выбор должен оставаться без изменений.Я установил режим выбора списка для множественного выбора.Но все равно нужно нажать клавишу ctrl, чтобы сделать это. Я хочу сделать это без нажатия клавиши ctrl.

Как сохранить выбранный элемент списка?

Здесьэто строка, в которой я устанавливаю режим выбора:

list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

Редактировать: AS, предложенный StanislavL Iпопробовал следующее, но у меня это не сработало.

            DefaultListSelectionModel model = new DefaultListSelectionModel();
            model.removeSelectionInterval(0, 2);
            user_list.setSelectionModel(model);

Ответы [ 2 ]

4 голосов
/ 17 февраля 2011

Это действительно хорошо известное соглашение, что для мультиселекции требуется нажатие клавиши Ctrl .То же самое с использованием клавиши Shift для выбора диапазона значений.

Лично я бы никогда не потратил усилий на изменение этого поведения, потому что это могло бы сбить с толку пользователей, которые уже знакомы с другими приложениями.

1 голос
/ 17 февраля 2011

Попробуйте заменить ListSelectionModel в списке. Используйте

public void setSelectionModel(ListSelectionModel selectionModel)

Вы можете использовать DefaultListSelectionModel и переопределить

public void removeSelectionInterval(int index0, int index1)

вызовите super.remove (), если элементы уже выбраны.

...