javafx 表视图;编辑新添加的元素
javafx TableView; edit newly added element
我正在尝试对 TableView 上新添加的元素自动开始编辑。例如
((TableView)t).getItems().add(new Data(...));
t.edit(t.getItems().size() - 1, tColumn);
尽管这为特定单元格提供了未定义的行为(例如,似乎处于编辑状态(视觉上),而实际上并非如此)
据我了解,添加元素后,table 本身还没有更新(还),因此添加 runLater 调用有时可以解决此问题。虽然不一致。
Platform.runLater(() -> t.edit(t.getItems().size() - 1, tColumn));
至少这摆脱了未定义的视觉行为。它要么编辑,
或者不是(技术上和视觉上)。
所以我正在寻找一种在添加元素后触发编辑的一致方法。
我偶然发现了这个问题的解决方案...。如果您在开始编辑之前调用 TableView#layout()
,单元格将得到正确更新,从而提供防错结果。
((TableView)t).getItems().add(new Data(...));
t.layout();
t.edit(t.getItems().size() - 1, tColumn);
请注意,不需要 Platform#runLater()
调用。
我正在尝试对 TableView 上新添加的元素自动开始编辑。例如
((TableView)t).getItems().add(new Data(...));
t.edit(t.getItems().size() - 1, tColumn);
尽管这为特定单元格提供了未定义的行为(例如,似乎处于编辑状态(视觉上),而实际上并非如此)
据我了解,添加元素后,table 本身还没有更新(还),因此添加 runLater 调用有时可以解决此问题。虽然不一致。
Platform.runLater(() -> t.edit(t.getItems().size() - 1, tColumn));
至少这摆脱了未定义的视觉行为。它要么编辑, 或者不是(技术上和视觉上)。
所以我正在寻找一种在添加元素后触发编辑的一致方法。
我偶然发现了这个问题的解决方案...。如果您在开始编辑之前调用 TableView#layout()
,单元格将得到正确更新,从而提供防错结果。
((TableView)t).getItems().add(new Data(...));
t.layout();
t.edit(t.getItems().size() - 1, tColumn);
请注意,不需要 Platform#runLater()
调用。