javafx TableView;编辑新添加的元素

时间:2018-01-20 13:46:44

标签: java tableview javafx-8

我正在尝试在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));

至少这可以摆脱未定义的视觉行为。它的编辑,  或者它不是(技术上和视觉上)。

所以我在搜索添加元素后触发编辑的一致方法。

1 个答案:

答案 0 :(得分:0)

我偶然发现了这个问题的解决方案......如果您在开始编辑之前致电TableView#layout(),则会正确更新单元格,从而提供防错结果。

((TableView)t).getItems().add(new Data(...));
t.layout();
t.edit(t.getItems().size() - 1, tColumn);

请注意,无需Platform#runLater()来电。