gpt4 book ai didi

java - 从单元格内获取 TreeTableView 行?

转载 作者:行者123 更新时间:2023-12-02 02:21:26 24 4
gpt4 key购买 nike

thisColumn.setCellFactory(new Callback<TreeTableColumn<Obj, String>, TreeTableCell<Obj, String>>() {
@Override
public TreeTableCell<Task, String> call(final TreeTableColumn<Task, String> param) {
JFXComboBox<String> jfxComboBox = new JFXComboBox<>();
jfxComboBox.setMinWidth(100.0);
jfxComboBox.setPrefWidth(100.0);
jfxComboBox.setItems(Class.profiles);

jfxComboBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
/** N/A **/
}
});
final TreeTableCell<Task, Void> cell = new TreeTableCell<Task, Void>() {
HBox hBox = new HBox();
Boolean result = hBox.getChildren().addAll(jfxComboBox);
@Override
public void updateItem(Void item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
} else {
setGraphic(hBox);
}
}
};
return cell;
}
});

我目前正在尝试在 TreeTableView 中显示 JFXComboBox (ComboBox),并使用当前代码添加它。但是,在回调中,我无法访问 jfxComboBox 所在的行。

我注意到,如果我使用 TreeTableColumn.CellDataFeatures 而不是 TreeTableColumn,它会让我访问 param.getValue().getValue(),这正是我所需要的,但随后我'我无法返回 TreeTableCell 来显示我的 jfxComboBox。

关于如何实现这一目标有什么建议吗?

附注:

我试图避免使用 .getSelectionModel().getSelectedItem() 因为当我单击组合框时,我还没有选择当前行/之前可能不会选择任何行单击组合框。但我有兴趣看看是否有一种方法可以触发 jfxComboBox 所在父行的选择。

最佳答案

可以解决您的问题的示例:

myColumn.setCellFactory(factory -> new TreeTableCell<MyModel, String>(){
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if(empty){
setText(null);
setGraphic(null);
return;
}
// if empty is false, then these references should not be null
MyModel myModel = getTreeTableRow().getItem();
TreeItem<MyModel> treeItem = getTreeTableRow().getTreeItem();
}
});

关于java - 从单元格内获取 TreeTableView 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48439543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com