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