0

创建 tableview 时,列的默认行为是留出大量空白空间。有没有办法自动填充空间?

这里描述了一种解决方案: JavaFX 2 Automatic Column Width 但这似乎有点麻烦。

4

1 回答 1

3

TornadoFX 带有一个名为SmartResize. 你把它分配给一个 TableView 是这样的:

columnResizePolicy = SmartResize.POLICY

默认情况下,它会根据数据尝试做一些有用的事情,并将任何剩余的宽度分配给最后一列。

您可以通过调用适当的配置器函数来配置每列的大小调整选项。例如,告诉策略为给定列提供剩余宽度:

column("Name", Person::nameProperty).remainingWidth()

您可以配置多个列以接收剩余宽度,以便它们之间共享剩余宽度。

contentWidth()将确保列宽适合内容,并带有可选的附加填充:contentWidth(padding = 50.0).

大多数调整大小选项还采用一个可选useAsMin参数,该参数将强制将给定设置作为列的最小宽度。useAsMax对最大宽度做同样的事情。useAsMin通过设置和useAsMax/或指定fixedWidth(width)选项,您将获得固定大小。

weigthedWidth(weightNum)您可以使用函数甚至函数分配空间pctWidth(pctNum)。所有这些模式都可以组合

有关更多信息,请参阅TornadoFX 指南章节中有关调整大小的政策

于 2017-02-10T15:06:14.137 回答