簡體   English   中英

將表格寬度設置為所有列的累積寬度

[英]Set table width to the accumulated width of all columns

我試圖讓 TableView object 的寬度與所有 TableColumns 的累積總和一樣寬,以便在沒有滾動條的情況下完全顯示表格。 該表位於網格布局內,我嘗試使用以下代碼獲取所有列的寬度:

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,即使它們看起來不同寬。

要設置表格的寬度,我使用以下內容:

dataTable.setMinWidth(getTableWidth(dataTable));

注意:我從一個 TableView-Object 開始,代碼如下:

children>
      <TableView fx:id="dataTable" prefHeight="451.0" prefWidth="701.0" />
   </children>

並通過創建不帶寬度參數或任何東西的 TableColumns 來填充表格。

當前State圖片: 在此處輸入圖像描述

您應該將列調整大小策略設置為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);

你可能想看看那里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM