JavaFX如何从Tableview中获取选定行的数据
JavaFX How to get data of selected row from Tableview
我想从一个选定的行中获取数据
我有这个小代码
Stlpce aktualne = (Stlpce) tableview_objednavka.getSelectionModel().getSelectedItems();
double aktcena = aktualne.getCena();
但是当我 运行 应用程序时我得到这个错误
Caused by: java.lang.ClassCastException: javafx.scene.control.TableView$TableViewArrayListSelectionModel 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--) returns 对
的引用
ObvservableList<T>
Stlpe 没有的对象 implement/extend 因此 Stlpe 引用不能指向这样的对象。
Stlpe class 是您的 ObservableList 的类型 class 吗?如果是这样,也许您需要在列表中找到 Stlpe 对象:
if (returnedList.size() > 0) {
Stlpe item = returnedList.get(0);
}
如果你只关心选择了哪一行,假设你有一个TableView,你可以简单地使用:
List selected = selectionModel.getSelectedItems();
或者如果您的 table 只允许单行选择:
SomeObject selected = selectionModel.getSelectedItem();
System.out.println(selected.getName());
尝试 100% 工作...
或尝试这个以更好地理解 Get row data from TableView
在您的声明中,TableView
应该转换为您的对象
例如:TableView <Stlpce> tableview_objednavka;
我想从一个选定的行中获取数据
我有这个小代码
Stlpce aktualne = (Stlpce) tableview_objednavka.getSelectionModel().getSelectedItems();
double aktcena = aktualne.getCena();
但是当我 运行 应用程序时我得到这个错误
Caused by: java.lang.ClassCastException: javafx.scene.control.TableView$TableViewArrayListSelectionModel 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--) returns 对
的引用ObvservableList<T>
Stlpe 没有的对象 implement/extend 因此 Stlpe 引用不能指向这样的对象。
Stlpe class 是您的 ObservableList 的类型 class 吗?如果是这样,也许您需要在列表中找到 Stlpe 对象:
if (returnedList.size() > 0) {
Stlpe item = returnedList.get(0);
}
如果你只关心选择了哪一行,假设你有一个TableView,你可以简单地使用:
List selected = selectionModel.getSelectedItems();
或者如果您的 table 只允许单行选择:
SomeObject selected = selectionModel.getSelectedItem();
System.out.println(selected.getName());
尝试 100% 工作...
或尝试这个以更好地理解 Get row data from TableView
在您的声明中,TableView
应该转换为您的对象
例如:TableView <Stlpce> tableview_objednavka;