【发布时间】:2013-11-26 01:41:21
【问题描述】:
我有一个正在构建的应用程序,其中包含一个表格,我没有使用 tableview 来构建这个表格,因为我需要每一行都能够像手风琴一样扩展。我能够通过使用时间线并循环遍历数据并构建每一行来实现我所需要的(它现在有点粗糙,因为我仍在使用虚拟数据,最终它将是一个列表迭代器,而不仅仅是一个 for 循环) 但我对它的完成方式不满意。有很多默认值永远不会改变,所以我真的不需要每次都在我的工人类中设置它们,我决定将它们添加到我放在一起的对象类中。所以基本上,在高层次上它看起来像这样:
for (int i = 0; i < 30; i++) {
RowBuilder builder = new RowBuilder(tableBox, i);
try {
builder.run();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我将其作为 VBox - tableBox 的父级传递给它,然后我将传递计数以供以后使用。
在 RowBuilder 中,我得到了对象 DashboardRow 的新实例,其中设置了所有默认值,然后我为每一行设置数据并返回 DashboardRow。
这是 DashboardRow 中 getter 设置值的示例
public HBox getMainRow() {
mainRow.setAlignment(Pos.CENTER_LEFT);
mainRow.setPrefHeight(60);
mainRow.setMinHeight(60);
mainRow.setMaxHeight(60);
mainRow.setPrefWidth(-1);
mainRow.setStyle("-fx-background-color:#FFFFFF;");
return mainRow;
}
在 DashboardRow 类中,我为行中需要的每个元素创建了大量新对象。每行有 21 个,主要是 VBox、HBox 和 StackPane 来构建实际的行,其余的只是标签和按钮。
这是目前的样子。打开和关闭状态。
有没有更好的方法在 javafx 中动态构建这样的东西?我基本上是从数据库中提取数据并循环遍历该数据以填充一行。
【问题讨论】:
标签: javafx