Я хотел бы получить данные из одной выбранной строки
У меня есть этот маленький код
Stlpce aktualne = (Stlpce) tableview_objednavka.getSelectionModel().getSelectedItems();
double aktcena = aktualne.getCena();
Но когда я запускаю приложение, я получаю эту ошибку
Caused by: java.lang.ClassCastException: javafx.scene.control.TableView$TableViewArrayListSelectionModel$5 cannot be cast to sample.Stlpce
Я использую построитель сцен для создания TableView.
Вы можете мне помочь?
Это решено - проблема заключалась в том, что у меня есть getSelectedItems();
вместо getSelectedItem();
Исключением является его значение: http://docs.oracle.com/javase/7/docs/api/java/lang/ClassCastException.html
Вызов метода, который вы вызываете (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableView.TableViewSelectionModel.html#getSelectedItems--), возвращает ссылку на
ObvservableList<T>
Объект, который Stlpe не реализует/не расширяет, и поэтому ссылка Stlpe не может указывать на такой объект.
Является ли класс Stlpe классом Type вашего ObservableList? Если это так, возможно, вам нужно найти объект Stlpe в своем списке:
if (returnedList.size() > 0) {
Stlpe item = returnedList.get(0);
}
Если вы только заботитесь о том, какая строка выбрана, если у вас есть TableView, вы можете просто использовать:
Выбранный список = selectionModel.getSelectedItems();
или если ваша таблица позволяет выбирать только одну строку:
SomeObject selected = selectionModel.getSelectedItem();
System.out.println(selected.getName());
Попробуйте 100% работать...
или попробуйте это для лучшего понимания. Получите данные строки из TableView
В объявлении TableView
должно быть добавлено к вашему объекту, например: TableView <Stlpce> tableview_objednavka;