JavaFX Как получить данные выбранной строки из таблицы

1

Я хотел бы получить данные из одной выбранной строки

У меня есть этот маленький код

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();

Теги:
tableview

3 ответа

1
Лучший ответ

Исключением является его значение: 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);
}
3

Если вы только заботитесь о том, какая строка выбрана, если у вас есть TableView, вы можете просто использовать:

Выбранный список = selectionModel.getSelectedItems();

или если ваша таблица позволяет выбирать только одну строку:

SomeObject selected = selectionModel.getSelectedItem();

System.out.println(selected.getName());

Попробуйте 100% работать...

или попробуйте это для лучшего понимания. Получите данные строки из TableView

0

В объявлении TableView должно быть добавлено к вашему объекту, например: TableView <Stlpce> tableview_objednavka;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню