设置table宽度为所有列宽度的累加
Set table width to the accumulated width of all columns
我试图让 TableView 对象的宽度与所有 Table 列的总和一样宽,以便 Table 完全显示而没有滚动条.
table 在网格布局中,我尝试使用以下代码获取所有列的宽度:
private double getTableWidth(TableView dataTable){
double totalWidth = 0;
for(int i = 0; i < dataTable.getColumns().size(); i++){
totalWidth += ((TableColumn) dataTable.getColumns().get(i)).getWidth();
}
return totalWidth;
}
但不知何故,每列的宽度为 80,即使它们看起来宽度不同。
要设置 table 的宽度,我使用以下内容:
dataTable.setMinWidth(getTableWidth(dataTable));
注意:
我从具有以下代码的 TableView-Object 开始:
children>
<TableView fx:id="dataTable" prefHeight="451.0" prefWidth="701.0" />
</children>
并通过创建 Table 没有宽度参数或任何其他内容的列来填充 table。
当前状态图:
您应该将列大小调整策略设置为 constrained-resize
,这样您将填充每列的所有可用宽度。
您可以使用 FXML 来完成:
<TableView fx:id="tableView" layoutX="110.0" layoutY="78.0" prefHeight="200.0" prefWidth="396.0">
<columnResizePolicy><TableView fx:constant="CONSTRAINED_RESIZE_POLICY"/></columnResizePolicy>
<columns>
<TableColumn prefWidth="75.0" text="Column X" />
<TableColumn prefWidth="75.0" text="Column X" />
</columns>
</TableView>
您可以通过编程方式完成:
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
你可能想看看there
我试图让 TableView 对象的宽度与所有 Table 列的总和一样宽,以便 Table 完全显示而没有滚动条. table 在网格布局中,我尝试使用以下代码获取所有列的宽度:
private double getTableWidth(TableView dataTable){
double totalWidth = 0;
for(int i = 0; i < dataTable.getColumns().size(); i++){
totalWidth += ((TableColumn) dataTable.getColumns().get(i)).getWidth();
}
return totalWidth;
}
但不知何故,每列的宽度为 80,即使它们看起来宽度不同。
要设置 table 的宽度,我使用以下内容:
dataTable.setMinWidth(getTableWidth(dataTable));
注意: 我从具有以下代码的 TableView-Object 开始:
children>
<TableView fx:id="dataTable" prefHeight="451.0" prefWidth="701.0" />
</children>
并通过创建 Table 没有宽度参数或任何其他内容的列来填充 table。
当前状态图:
您应该将列大小调整策略设置为 constrained-resize
,这样您将填充每列的所有可用宽度。
您可以使用 FXML 来完成:
<TableView fx:id="tableView" layoutX="110.0" layoutY="78.0" prefHeight="200.0" prefWidth="396.0">
<columnResizePolicy><TableView fx:constant="CONSTRAINED_RESIZE_POLICY"/></columnResizePolicy>
<columns>
<TableColumn prefWidth="75.0" text="Column X" />
<TableColumn prefWidth="75.0" text="Column X" />
</columns>
</TableView>
您可以通过编程方式完成:
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
你可能想看看there