Java将Observable列表中的列分配给@fxml列

时间:2015-03-17 16:15:25

标签: java javafx fxml

我正在寻找建议,因为我无法制作我的表单,并在可观察列表的场景构建器显示数据中设计TableView。我有一个返回ObservableList<ObservableList>的模型,我想在我的表单的Controller中分配给列(例如,id)。这是我的代码:

@FXML
private TableColumn id;


Database database = new Database();    
TableView tableView = new TableView();    
tableView.setItems(database.returnData()); // --> this is the method returning Observablelist     
id = tableView.getColumns().get(0); // --> line with error

我收到错误

Error:(35, 44) java: incompatible types: java.lang.Object cannot be converted to javafx.scene.control.TableColumn
你能帮助我让它运作吗? 非常感谢你!

编辑: 如果我从数据库中提取TableView而不是可观察列表,在Controller中启动它然后将@FXML列分配给pull tableview中的列,会更容易吗?如果有,任何想法怎么做?您可以分享的任何帮助或单词的Thx。彼得

2 个答案:

答案 0 :(得分:0)

您需要将表格和列与您的FXML定义相关联,还需要创建一个放入表格中的ObservableList

@FXML private TableView<SimpleFileProperty> table;
@FXML private TableColumn<SimpleFileProperty, String> sizeCol;
final private ObservableList<SimpleFileProperty> tableData =
                                        FXCollections.observableArrayList();
// ...
table.setItems(tableData);

答案 1 :(得分:0)

好的,只是为了关闭这个。我的问题是返回ObservableList&lt; ObservableList&gt;,更改为ObservableList&lt; myClass&gt;它开始起作用了。我强烈推荐下面提到的教程:

http://docs.oracle.com/javafx/2/ui_controls/table-view.htm