我的团队正在评估 JavaFX 作为数据库应用程序的平台,该平台将大量使用 TableViews。我们的印象是,为了在表中显示数据,我们必须对 TableView 进行子类化,并为我们需要的每个列数据类型和表示模式编写我们自己的 ValueFactory 类。
例如,如果我们想要将位字段显示为是/否文本和开/关复选框,则需要 2 个 ValueFactory 或 1 个 ValueFactory 和 2 个 CellFactory 用于位数据类型。
Q1:我们的理解正确吗?
问题 2:是否存在任何 3d 方库,允许我们简单地将其 TableView 版本的数据绑定(bind)属性设置为 ResultSet,并通过对显示模式进行细微调整来自动显示数据?
随着评估的进行,会出现更多问题。
Q3:我们是否必须为每个 SQL 查询创建一个数据行类,并为每个类创建一个 ObservableList,这意味着每次我们更改返回的列时,我们都必须重新编写数据行类?我们是否必须通过将结果集保留在内存中并在滚动时重新填充 ObservableLists 来实现分页?
最佳答案
Q1 - 对于每一列,您应该指定 valueFactory - 非常简单。如果您不想将值显示为默认值,您可以指定 cellfactory - 并不那么容易。我认为最佳实践是创建自己的类来扩展 TableView,并且您将指定所需的一切。您还可以创建自己的TableCell类等。我认为开发javafx应用程序这项工作并不难。
Q2 - 我不知道,但我会创建自己的类。
Q3 - Observablelist 应该包含您的实体类。每个查询应返回实体对象列表。值工厂与某些实体对象属性链接。
关于用于 SQL 数据库访问的 JavaFX TableView - 有多少工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20272909/