我有3列的表。該表使用CONSTRAINED_RESIZE_POLICY。JavaFX - 停止表格列從父母調整大小
所有三列可以由用戶調整大小。
當表格的寬度增加或減少時,我希望中間列保持與原來相同的寬度(以像素爲單位),並且多餘的空間要從同一基本的其他列分配(或取用)現在發生的方式。
基本上,我會SplitPane.setResizableWithParent(<child>, false)
功能的表列。
任何想法如何做到這一點?
我有3列的表。該表使用CONSTRAINED_RESIZE_POLICY。JavaFX - 停止表格列從父母調整大小
所有三列可以由用戶調整大小。
當表格的寬度增加或減少時,我希望中間列保持與原來相同的寬度(以像素爲單位),並且多餘的空間要從同一基本的其他列分配(或取用)現在發生的方式。
基本上,我會SplitPane.setResizableWithParent(<child>, false)
功能的表列。
任何想法如何做到這一點?
如何在拖動列時重置最小和最大寬度。這是一個內部類的例子。
class CustomResizePolicy implements Callback<TableView.ResizeFeatures, Boolean> {
static final double DEFAULT_MIN_WIDTH = 10.0F, DEFAULT_MAX_WIDTH = 5000.0F;
@Override
public Boolean call(TableView.ResizeFeatures feature) {
final TableColumn<?,?> c = feature.getColumn();
if (c == column2) {
c.setMinWidth(DEFAULT_MIN_WIDTH);
c.setMaxWidth(DEFAULT_MAX_WIDTH);
}
boolean result = TableView.CONSTRAINED_RESIZE_POLICY.call(feature);
if (c == column2) {
c.setMinWidth(c.getWidth());
c.setMaxWidth(c.getWidth());
}
return result;
}
}
和
tableView.setColumnResizePolicy(new CustomResizePolicy());
column2.setMaxWidth(200); // Need to fix column2's width in this case
column2.setMinWidth(200);
column1.setMaxWidth(5000); // Divide left margin with a ratio of 1:2
column3.setMaxWidth(10000);
我想你可以設置該列的最小和最大寬度。 – Sedrick
@SedrickJefferson:如果我這樣做,用戶將無法調整列的大小。 – JoshuaD