Получение выбранного элемента из ListView
Я изменяю a ListView
с результатами поиска в базе данных, чтобы использовать этот выбор, чтобы позже выполнить другой запрос БД.
Я хочу получить значение поля этого ListView
. Какой метод я могу использовать для этого?
Я просто подумал, что могу добавить событие в onclick
и сохранить его для атрибута для контроллера. Это тоже приемлемо?
Ответы
Ответ 1
Скажите со списком:
ListView<String> listView =new ListView<String>();
Получение выбранного элемента из ListView:
listView.getSelectionModel().getSelectedItem();
Отслеживание (прослушивание) изменений в выборе списка списка:
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("ListView selection changed from oldValue = "
+ oldValue + " to newValue = " + newValue);
}
});
Ответ 2
Вы можете создать собственный обработчик событий, сначала создать класс для обработки событий мыши.
import javafx.event.EventHandler;
import javafx.scene.input.MouseEvent;
class ListViewHandler implements EventHandler<MouseEvent> {
@Override
public void handle(MouseEvent event) {
//this method will be overrided in next step
}
}
После создания класса перейдите туда, где вы хотите, чтобы событие произошло
list.setOnMouseClicked(new ListViewHandler(){
@Override
public void handle(javafx.scene.input.MouseEvent event) {
System.out.print(list.getSelectionModel().getSelectedIndex());
}
});
Ответ 3
У JFXtras есть класс, который расширяет ListView, у которого есть свойство selectedItemProperty, которое мне показалось удобным.
http://jfxtras.org/overview.html#_listview
Ответ 4
Спасибо, первое мнение работает на меня