【问题标题】:javafx TableView; edit newly added elementjavafx 表视图;编辑新添加的元素
【发布时间】:2018-01-20 13:46:44
【问题描述】:

我正在尝试对 TableView 上新添加的元素自动启动编辑。例如

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

虽然这为已分隔的单元格提供了未定义的行为(例如,似乎处于编辑状态(视觉上),但实际上并非如此)

据我了解,添加元素后,表本身尚未更新(尚未),因此添加 runLater 调用有时可以解决此问题。虽然不一致。

Platform.runLater(() -> t.edit(t.getItems().size() - 1, tColumn));

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

所以我正在寻找一种在添加元素后触发编辑的一致方式。

【问题讨论】:

  • 也欢迎对这个话题提出任何想法。换个方向思考总是有帮助的!

标签: java tableview javafx-8


【解决方案1】:

我偶然发现了这个问题的解决方案......如果您在开始编辑之前调用TableView#layout(),则单元格将正确更新,并提供防故障结果。

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

请注意,不需要Platform#runLater() 调用。

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多