如何用列填充可用的表格视图宽度?
How to fill available tableview width with columns?
创建 tableview 时,列的默认行为是留很多空 space。有没有办法自动填充 space?
此处描述了一种解决方案:
JavaFX 2 Automatic Column Width
但这似乎有点麻烦。
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)
功能分发 space。所有这些模式都可以组合
创建 tableview 时,列的默认行为是留很多空 space。有没有办法自动填充 space?
此处描述了一种解决方案: JavaFX 2 Automatic Column Width 但这似乎有点麻烦。
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)
功能分发 space。所有这些模式都可以组合