2015-04-11 3 views
1

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

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

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

ответ

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 классом типа вашего наблюдаемого списка? Если это так, может быть, вам нужно найти объект Stlpe в списке:

if (returnedList.size() > 0) { 
    Stlpe item = returnedList.get(0); 
} 
3

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

Список selected = selectionModel.getSelectedItems();

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

SomeObject выбран = selectionModel.getSelectedItem();

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

Попробуй 100% рабочий ...

или попробовать это для лучшего понимания Get row data from TableView

0

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

Смежные вопросы