我有一个 tableview 显示数据库记录的数据。
我也有不在表格中的字段(在额外的窗格中)显示相同的字段(为了方便起见,在表格中以便于排序,在外部以便于更改)
这样的; 当我更改不在表格中的字段时,我需要相应地更改表格视图:change -> db update -> new data into the table
- 它不起作用。该视图没有“刷新”(例如在微软产品中)。
一个 hacky 解决方案有效:我每次都重新创建表并再次设置它(一切:构建列、侦听器、设置所选项目,并设置这个“新”表而不是现有表)。(SO 中的另一个建议解决方案,设置为 visible(false)/(true) - 它不起作用)。
如果这样说,我找到了另一个“解决方案”:我将更改后的值直接设置到 table.field 中。然而,然后;更改的数据未显示为已更改。- 仅当我作为人类访问标题时(双击标题以触发排序;它最终会更新视图)
我不希望每次都完全重新创建表。这就是为什么,我想使用“解决方案”。- 但是,我不想像人类一样双击标题。
这样的; 我尝试了 SO 的另一篇文章中提出的 Fire-Event,因为:
Pane header = (Pane) MY_TABLE.lookup("TableHeaderRow");
// to simulate a double-click onto the 2nd table-column-header
Event.fireEvent(header.getChildren().get(1) ...
.. 这没用; 但我不确定我必须“robo-click”到哪个“节点”..
它很老套;但如果有人能指出解决方案,我将不胜感激。.. :) 请不是设置可观察列表等的解决方案;我已经这样做了,但无济于事。我只是想让这个“黑客”运行;不要每次都重新创建表。
- 如果有类似 javafx (java 8) 的表,可能是一个私有 API,在代码触发时提供视图更新;请告诉:)
谢谢!