Мне нужно убирать выделение, если пользователь нажал на строку ListView, которая пуста. Из-за того что выделение не сбрасывается - нельзя понять на что именно нажали.
Лично я делал так:
listView.setOnMouseClicked(event -> {
System.out.println(event.getTarget().toString());
});
Потом парсил строку, находил null и так понимал, что надо убрать выделение. Да, это плохой код, но лучшего решения не нашел)
У ListView есть метод getSelectionModel(), у которого есть много разных методов, например, getSelectedIndex(), который возвращает индекс выделенной строки(конечно же, начиная с 0). Кроме того, есть метод clearSelection(). Если использовать его без параметров, то снимается выделение всех строк, если указать параметр index, то снимается выделение конкретной строки.
Любая современная ide после точки показывает, какие методы есть у объекта или класса, и обычно по названию метода и принимаемых параметров понятно, для чего он нужен.
Навскидку:
ListView view = new ListView();
view.setOnMouseClicked(event -> {
int index = view.getSelectionModel().getSelectedIndex();
view.getSelectionModel().clearSelection(index);
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости