【发布时间】:2012-12-30 00:14:18
【问题描述】:
如何在用户界面中编辑数据时警告用户,以便在他们从其他来源加载时警告他们覆盖,或提示他们保存? (JavaFX2.2)
我将在多个选项卡和 2 或 3 个带有添加和删除行的按钮的表格中拥有 50 多个文本字段。
我想知道是否有一个全局“isDirty”布尔标志并且可以在按钮上设置 onAction 处理程序,但我必须在每个文本字段和文本区域上设置onKeyTyped 处理程序吗? (它会减慢速度吗?)。 Java 是否会跟踪是否有任何字段被编辑,如果是,我可以从中捕获该信息吗?
【问题讨论】:
-
将所有数据保存在单独的数据模型中,并将数据模型与文本字段和表格的内容进行比较,作为加载和保存操作的侦听器,可能会更容易。
-
拥有数据模型只会让事情变得更糟恕我直言——尽管显然我确实有一个用于表格的 ArrayList(一个“数据模型”)。这些是设备的配置参数。我正在从设备读取数据并将其放在屏幕上。可以连接多个设备,我们可以从一个设备保存到另一个设备 - 因此存在覆盖未保存数据的危险。
-
如果您不想比较两个模型,另一种选择是使用新类“dirty”更新已更新的任何字段的标签。然后,您可以搜索任何脏字段并适当地处理它们。
-
@Zylth 你能解释一下'更新标签......用新的脏类'吗?
-
这将比后端更适合 UI,但要实现任何更改的处理程序,然后更新文本字段的类以包含“脏”