我正在尝试在TableView上新添加的元素上自动启动编辑。 e.g。
((TableView)t).getItems().add(new Data(...));
t.edit(t.getItems().size() - 1, tColumn);
虽然这为sepcified单元格提供了未定义的行为(例如,似乎处于编辑状态(视觉上),而实际上并非如此)
据我所知,在添加元素后,表本身不会更新(还),因此添加runLater调用有时可以解决这个问题。虽然不一致。
Platform.runLater(() -> t.edit(t.getItems().size() - 1, tColumn));
至少这可以摆脱未定义的视觉行为。它的编辑, 或者它不是(技术上和视觉上)。
所以我在搜索添加元素后触发编辑的一致方法。
答案 0 :(得分:0)
我偶然发现了这个问题的解决方案......如果您在开始编辑之前致电TableView#layout()
,则会正确更新单元格,从而提供防错结果。
((TableView)t).getItems().add(new Data(...));
t.layout();
t.edit(t.getItems().size() - 1, tColumn);
请注意,无需Platform#runLater()
来电。