Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JFXButton添加到JFXTreeTableView中_Java_Javafx_Treetableview_Jfoenix - Fatal编程技术网

Java 将JFXButton添加到JFXTreeTableView中

Java 将JFXButton添加到JFXTreeTableView中,java,javafx,treetableview,jfoenix,Java,Javafx,Treetableview,Jfoenix,我试图对此进行研究,但找不到任何例子。我发现的示例仅涉及普通的TableView。我只能创建一个带有对象和列表字符串的JFXTreeTableView。任何帮助都将不胜感激!谢谢 我需要在TreeTableView中放置一个按钮或除字符串以外的任何其他对象 更新以明确我希望它看起来像什么,解决方案如下。 关于这篇文章,我试图在TreeTableView(特别是JFXTreeTableView)中添加一个按钮(特别是JFXButton) 然而,这篇文章只讨论了TableView。在分析代码之后,

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

我需要在TreeTableView中放置一个按钮或除字符串以外的任何其他对象

更新以明确我希望它看起来像什么,解决方案如下。

关于这篇文章,我试图在TreeTableView(特别是JFXTreeTableView)中添加一个按钮(特别是JFXButton)

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

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

JFXTreeTableColumn设置column=newjfxtreetablecolumn(“其他”);
settingsColumn.setPrefWidth(100);
回叫手机工厂
= //
新回调函数(){
@凌驾
公共TreeTableCell调用(最终TreeTableColumn参数){
最终的TreeTableCell单元格=新的TreeTableCell(){
final JFXButton btn=新JFXButton(“只管做”);
@凌驾
public void updateItem(字符串项,布尔值为空){
super.updateItem(项,空);
if(空){
设置图形(空);
setText(空);
}否则{
btn.setButtonType(JFXButton.ButtonType.凸起);
btn.设置动作(事件->{
//按钮动作在这里
});
设置图形(btn);
setText(空);
}
}
};
返回单元;
}
};
设置列。设置单元工厂(单元工厂);
//还记得在中添加新列
treeView.getColumns().setAll(deptColumn、ageColumn、empColumn、settingsColumn);
这就是最终结果:

关于这篇文章,我试图在TreeTableView(特别是JFXTreeTableView)中添加一个按钮(特别是JFXButton)

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

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

JFXTreeTableColumn设置column=newjfxtreetablecolumn(“其他”);
settingsColumn.setPrefWidth(100);
回叫手机工厂
= //
新回调函数(){
@凌驾
公共TreeTableCell调用(最终TreeTableColumn参数){
最终的TreeTableCell单元格=新的TreeTableCell(){
final JFXButton btn=新JFXButton(“只管做”);
@凌驾
public void updateItem(字符串项,布尔值为空){
super.updateItem(项,空);
if(空){
设置图形(空);
setText(空);
}否则{
btn.setButtonType(JFXButton.ButtonType.凸起);
btn.设置动作(事件->{
//按钮动作在这里
});
设置图形(btn);
setText(空);
}
}
};
返回单元;
}
};
设置列。设置单元工厂(单元工厂);
//还记得在中添加新列
treeView.getColumns().setAll(deptColumn、ageColumn、empColumn、settingsColumn);
这就是最终结果:

读一本关于fx基础知识的不错的教程怎么样?您需要学习如何设置树/表视图的机制(因为您似乎不知道这些,从尝试将列设置为按钮类型判断),请查看javafx标记的信息页是的,我确实不明白这就是我来这里寻求帮助的原因。至于将列设置为按钮类型,这是我尝试的方法之一。我遵循的其他一些示例是创建一个新类,用它扩展一个TableCell并设置单元格值工厂,但这实际上不起作用。如果有更清楚的例子说明从哪里可以获得更多信息,那就好了。在将用户信息对象(SimpleStringProperty)放入表中时,提供的通用代码为我提供了帮助。希望你能帮忙。非常感谢!你的问题是无法回答的:它不包含任何关于你到底想要实现什么,你尝试了什么,以及它是如何出错的信息。请阅读并采取相应的行动。将添加代码片段,稍后我将尝试更详细地解释。请不要使用代码片段,需要的是mcve:)阅读一篇关于fx基础知识的教程怎么样?您需要学习如何设置树/表视图的机制(因为您似乎不知道这些,从尝试将列设置为按钮类型判断),请查看javafx标记的信息页是的,这是真的,我不完全理解
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);