我在 JavaFX 布局中使用 GridPane,并且总是使用 ColumnConstraints 的宽度百分比,但在一种特定情况下,它似乎不起作用:当我在数组内设置 ColumnConstraints 的宽度百分比时。
我的代码:
ColumnConstraints[] myColumns = Factory.createColumns(3);
myColumns[0].setPercentWidth(35);
myColumns[1].setPercentWidth(12);
myColumns[2].setPercentWidth(53);
devicePane.getColumnConstraints().setAll(myColumns);
该数组来 self 使用等分大小创建列的实用方法:
public static final ColumnConstraints[] createColumns(int count) {
ColumnConstraints[] columns = new ColumnConstraints[count];
ColumnConstraints column = new ColumnConstraints(1, 10, Double.MAX_VALUE);
column.setPercentWidth(100/count);
column.setFillWidth(true);
column.setHgrow(Priority.ALWAYS);
column.setHalignment(HPos.CENTER);
for(int i = 0; i < count; i++) {
columns[i] = column;
}
return columns;
}
最佳答案
您只是创建一个ColumnConstraints
对象。这使得无法为 percentWidth
属性分配不同的值。您需要为此目的创建单独的对象:
public static final ColumnConstraints[] createColumns(int count) {
ColumnConstraints[] columns = new ColumnConstraints[count];
for(int i = 0; i < count; i++) {
ColumnConstraints column = new ColumnConstraints(1, 10, Double.MAX_VALUE);
column.setPercentWidth(100/count); // do we still need this?
column.setFillWidth(true);
column.setHgrow(Priority.ALWAYS);
column.setHalignment(HPos.CENTER);
columns[i] = column;
}
return columns;
}
关于java - 使用数组时 ColumnConstraints.setPercentWidth() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58632803/