0

我试图对此进行研究,但找不到任何示例。我发现的示例仅与普通 TableView 有关。我只能用一个对象创建一个 JFXTreeTableView 并列出字符串。任何帮助,将不胜感激!谢谢!

我需要将一个按钮或基本上除字符串之外的任何其他对象放入 TreeTableView。

更新以明确我希望它的外观,解决方案如下。 在此处输入图像描述

4

1 回答 1

3

参考这篇文章,我试图将按钮(特别是 JFXButton)添加到 TreeTableView(特别是 JFXTreeTableView) 中如何在 JavaFX 表视图中添加按钮

但是,这篇文章只讨论了 TableView。在分析了代码之后,我尝试修改代码以使用 TreeTableView 和 TreeTableCell。

使用来自JFoenix的示例代码并按照下面的代码片段对其进行修改,我可以将 JFXButton 加载到 JFXTreeTableView 中。(也适用于普通按钮。只需将 JFXButton 替换为 Button)

JFXTreeTableColumn<User, String> settingsColumn = new JFXTreeTableColumn<>("Others");
        settingsColumn.setPrefWidth(100);
        Callback<TreeTableColumn<User, String>, TreeTableCell<User, String>> cellFactory
                = //
                new Callback<TreeTableColumn<User, String>, TreeTableCell<User, String>>() {
                    @Override
                    public TreeTableCell call(final TreeTableColumn<User, String> param) {
                        final TreeTableCell<User, String> cell = new TreeTableCell<User, String>() {

                            final JFXButton btn = new JFXButton("Just Do it");

                            @Override
                            public void updateItem(String item, boolean empty) {
                                super.updateItem(item, empty);
                                if (empty) {
                                    setGraphic(null);
                                    setText(null);
                                } else {
                                    btn.setButtonType(JFXButton.ButtonType.RAISED);
                                    btn.setOnAction(event -> {
                                    //Button Action here
                                    });
                                    setGraphic(btn);
                                    setText(null);
                                }
                            }
                        };
                        return cell;
                    }
                };

settingsColumn.setCellFactory(cellFactory);

//Also remember to add the new column in
treeView.getColumns().setAll(deptColumn, ageColumn, empColumn, settingsColumn);

这是最终结果: 图像示例

于 2018-07-13T11:43:19.813 回答