将Tableview拉伸到内容大小

时间:2017-05-22 16:36:40

标签: javafx tableview

我在JavaFX TableView中有一个ScrollPane,还有一些与之平行的其他视图。这里有类似的东西:

<ScrollPane maxHeight="Infinity" maxWidth="Infinity" VBox.vgrow="ALWAYS">
    <GridPane maxHeight="Infinity" maxWidth="Infinity" prefWidth="1100">
        <columnConstraints>
            <ColumnConstraints hgrow="SOMETIMES" maxWidth="Infinity" minWidth="0" />
            <ColumnConstraints hgrow="SOMETIMES" maxWidth="Infinity" minWidth="0" />
        </columnConstraints>
        <rowConstraints>
            <RowConstraints maxHeight="Infinity" minHeight="10.0" vgrow="ALWAYS" />
        </rowConstraints>
        <VBox GridPane.columnIndex="1" GridPane.rowSpan="2147483647">
            <PieChart fx:id="amountPerState" legendVisible="false" minHeight="300" minWidth="300" />
            <PieChart fx:id="amountPerComponent" legendVisible="false" minHeight="300" minWidth="300" />
        </VBox>
        <TableView fx:id="componentTable" maxHeight="Infinity" maxWidth="Infinity" GridPane.rowIndex="6">
            <columns>
                ...
            </columns>
        </TableView>
    </GridPane>
</ScrollPane>

现在,来自ScrollPaneTableView的双重滚动非常简单。当我尝试在TableView内滚动ScrollPane时也会滚动。我希望TableView尽可能高的内容,以便只有ScrollPane的滚动。任何想法我怎么能这样做?还是其他想法?

编辑:为了进一步说明,我认为TableView应该具有如此之高的首选大小,以便显示其所有内容而无需任何滚动。然后可能没有滚动条,或者我不能用策略显示它们。这就是我认为你会实现这一目标的方式,但我不知道如何找出表格内容的高度,使其成为首选尺寸。

我认为它会在性能上有点差,因为TableView重复使用了这一行,但我知道TableView中没有很多行,所以没有性能问题。

编辑:图表和表格对于窗口都很大,所以它们都需要在ScrollPane

0 个答案:

没有答案