如何使用多个TableView和Cell Factories实现JavaFX表?

时间:2015-06-03 00:21:44

标签: javafx tableview

我有一个表格,其可见项目列表通过表格顶部的单选按钮进行过滤。所以我们假设单选按钮是A,B,C - 如果选择A,表格只会显示A类型的项目,如果选择B,它只会显示类型B等。

我为每个选择创建一个单独的TableView实例,因为用户将与表中的这些过滤值进行交互并编辑值等。我的表中每个列都有一个自定义单元工厂,因为需要突出显示行/根据用户输入冻结。

所以:

for (all values A.. C) {
    createNewTableView();
}

private void createNewTableView() {
    TableView tableView = new TableView();

    ...
    MyCustomCellFactory customCF = new MyCustomCellFactory();
    customCF.setTableView(tableView);
    clmn1.setCellFactory(customCF);
    ...
}

我的问题是,当我的自定义单元工厂触发时,即使通过我明确告诉它属于哪个表视图实例,表视图实例也不正确。它始终是我创造的最后一个。我通过检查实例ID来验证这一点。

所以问题是我如何拥有自定义单元工厂的多个表视图实例,并确保我在自定义单元工厂代码中始终采用正确的方式?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题实际上与未正确实例化TableView的每个实例的表列有关。我在这里发布了一个更简单的例子 - JavaFX tabbed pane with a table view on each tab? - 并得到了我需要的答案。