JavaFX如何从Tableview获取所选行的数据

时间:2015-04-11 08:56:04

标签: java 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();

3 个答案:

答案 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

您进行的方法调用(https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableView.TableViewSelectionModel.html#getSelectedItems--)返回对

的引用
ObvservableList<T>

对象,Stlpe没有实现/扩展,因此Stlpe引用不能指向这样的对象。

Stlpe类是ObservableList的Type类吗?如果是这样,您可能需要在列表中找到Stlpe对象:

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

答案 2 :(得分:0)

在您的声明中,TableView应该投放到您的对象上 例如:TableView <Stlpce> tableview_objednavka;