java - ColumnConstraints.setPercentWidth() 在使用数组时不起作用
问题描述
我将 GridPane 用于我的 JavaFX 布局,并且我总是对 ColumnConstraints 使用宽度百分比,但在一种特定情况下,它似乎不起作用:当我在数组中设置 ColumnConstraints 的宽度百分比时。
我的代码:
ColumnConstraints[] myColumns = Factory.createColumns(3);
myColumns[0].setPercentWidth(35);
myColumns[1].setPercentWidth(12);
myColumns[2].setPercentWidth(53);
devicePane.getColumnConstraints().setAll(myColumns);
该数组来自我使用等分大小创建列的实用方法:
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;
}
推荐阅读
- r - 展开数据框在 R 中表现异常
- python-3.x - 如何 pip 安装具有相同文件夹结构的两个依赖项,例如“gedev/htcloud/dependency1”和“gedev/htcloud/dependency2”
- php - 删除带有确认消息的用户按钮
- python - Beautiful Soup 以错误的方式更改 html 代码
- php - 不同实例中的多个数据库连接以连接 codeigniter 应用程序
- actionscript-3 - 将 swf 反编译为 fla Action 脚本编码错误
- c++ - 预编译的 WebRTC 库中的语法错误
- java - 修复 Swagger-Ui 的 JSON 示例 - 显示 JsonNumber 而不是 Object
- npm - 安装npm时,发现12个高危漏洞
- r - 在 R 中使用肌肉的默认间隙惩罚是多少?