代码之家  ›  专栏  ›  技术社区  ›  zzdhxu

将jfxButton添加到jfxtreeTableView中

  •  -1
  • zzdhxu  · 技术社区  · 8 年前

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

    我需要在TreeTableView中放置按钮或基本上是字符串以外的任何其他对象。

    更新以明确我想要它的样子,解决方案如下。 .

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

    更新以明确我想要它的样子,解决方案如下。

    1 回复  |  直到 7 年前
        1
  •  1
  •   zzdhxu    8 年前

    JFoenix

    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);
    

    Image Example