gpt4 book ai didi

java - ListView编辑没有将单元格切换到输入状态

转载 作者:行者123 更新时间:2023-12-02 07:37:25 25 4
gpt4 key购买 nike

我有一个 ListView,其中包含表名称和一个添加按钮。

tablesListView.setEditable(true);
tablesListView.setCellFactory(TextFieldListCell.forListView());
tablesListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
addTableButton.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent evt) {
tablesListView.getItems().add("");
tablesListView.getSelectionModel().selectLast();
tablesListView.edit(tablesListView.getSelectionModel().getSelectedIndex());
}
});

因此,当我单击列表中的某个单元格时,它会将其状态切换到 TextField,但这不适用于按钮,该单元格将被选中,但不会切换。有什么帮助吗?

最佳答案

尝试

tablesListView.setEditable(true);
tablesListView.setCellFactory(TextFieldListCell.forListView());
tablesListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

final Timeline animation = new Timeline(
new KeyFrame(Duration.seconds(.1),
new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
tablesListView.edit(tablesListView.getSelectionModel().getSelectedIndex());
}
}));
animation.setCycleCount(1);

addTableButton.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent evt) {
tablesListView.getItems().add("");
tablesListView.getSelectionModel().selectLast();
animation.play();
}
});

实际上 Platform.runLater() 可以工作,但只是偶尔,因为它会在“ future 某个未指定的时间”运行可运行程序。因此,您需要指定编辑命令运行的时间,例如我的代码示例中的时间线。编辑命令推迟0.1秒。

关于java - ListView编辑没有将单元格切换到输入状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11997041/

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