Layout TableView的列数超过指定的列数
在JavaFX2中使用TableView时,似乎神奇地添加了一列,而不是调整现有列的大小。请参见下面的屏幕截图 我期望/想要的是:两列都有50%的空间,不应添加第三列(未命名/空) 使用场景生成器创建,FXML代码:Layout TableView的列数超过指定的列数,layout,tableview,javafx-2,Layout,Tableview,Javafx 2,在JavaFX2中使用TableView时,似乎神奇地添加了一列,而不是调整现有列的大小。请参见下面的屏幕截图 我期望/想要的是:两列都有50%的空间,不应添加第三列(未命名/空) 使用场景生成器创建,FXML代码: 使用 通过这样做,您可以确保表列标题中的额外空间将分布在列之间。在此分布中,当然会考虑列的最大和最小宽度。 默认情况下,TableView.unconstraint\u RESIZE\u策略用于tablecolumns最初采用其首选宽度的位置。Uluk Bly的答案对于代码来
使用
通过这样做,您可以确保表列标题中的额外空间将分布在列之间。在此分布中,当然会考虑列的最大和最小宽度。默认情况下,
TableView.unconstraint\u RESIZE\u策略
用于tablecolumns最初采用其首选宽度的位置。Uluk Bly的答案对于代码来说绝对正确
此外,使用Scenebuilder,请确保将“属性”下拉窗口中的策略设置为相同(受约束),并且该策略应显示在FXML文件中,如下所示:
<columnResizePolicy>
<TableView fx:constant = "CONSTRAINED_RESIZE_POLICY"/>
</columnResizePolicy>
谢谢乌鲁克,这很有帮助!请作为答案发布,这样我就可以选择正确的答案:-)你对这种奇怪的行为有什么想法吗?这是因为默认的列宽行为将列调整为列中最宽的元素。所以剩余的空间没有被使用。你也可以用FXML来做吗?@user311525,是的。尝试使用
。虽然没有尝试,但它应该可以工作。是否可以使用首选宽度,但不显示右侧的附加列?例如,将无约束策略与约束策略相结合。
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
<columnResizePolicy>
<TableView fx:constant = "CONSTRAINED_RESIZE_POLICY"/>
</columnResizePolicy>