我想从一个选定的行中获取数据
我有这个小代码
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();
答案 0 :(得分:3)
如果您只关心选择哪一行,假设您有一个TableView,您只需使用:
List selected = selectionModel.getSelectedItems();
或者如果您的表只允许单行选择:
SomeObject selected = selectionModel.getSelectedItem();
的System.out.println(selected.getName());
尝试100%工作......
或尝试此操作以更好地了解Get row data from TableView
答案 1 :(得分:1)
其含义很明显: http://docs.oracle.com/javase/7/docs/api/java/lang/ClassCastException.html
的引用ObvservableList<T>
对象,Stlpe没有实现/扩展,因此Stlpe引用不能指向这样的对象。
Stlpe类是ObservableList的Type类吗?如果是这样,您可能需要在列表中找到Stlpe对象:
if (returnedList.size() > 0) {
Stlpe item = returnedList.get(0);
}
答案 2 :(得分:0)
在您的声明中,TableView
应该投放到您的对象上
例如:TableView <Stlpce> tableview_objednavka;