如何用列填充可用的tableview宽度?

时间:2017-02-10 14:41:54

标签: kotlin tornadofx

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

这里描述了一个解决方案: JavaFX 2 Automatic Column Width 但这看起来有点麻烦。

1 个答案:

答案 0 :(得分:2)

TornadoFX附带一个名为SmartResize的高级列调整大小策略。您可以将它分配给TableView,如下所示:

columnResizePolicy = SmartResize.POLICY

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

您可以通过调用相应的配置程序功能为每列配置调整大小选项。例如,告诉策略为给定列提供剩余宽度:

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

您可以配置多个列来接收重新生成宽度,以便它们共享它们之间的剩余宽度。

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

大多数调整大小选项还采用可选的useAsMin参数,该参数将强制给定的设置作为列的最小宽度。 useAsMax对最大宽度执行相同操作。通过设置useAsMinuseAsMax或指定fixedWidth(width)选项,您将获得固定的尺寸。

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

有关详细信息,请参阅TornadoFX Guide chapter about the resize policy