几个小时以来,我一直在尝试获得以下结果:Design,GridDesign,FinalResult
我的问题是我无法正确对齐TotalPrice标签,当标签尺寸变大(将更多文本添加到标签上)时,我希望它占据2列并对齐到网格的最右边它只能在左侧生长,并且仍与网格的右侧对齐! 但是似乎没有任何正常工作!
就我而言,当我增加价格时,它不会像我想要的那样保持...
这是我使用较小标签文本的结果,在这种情况下,它看起来很完美,价格与右侧完美对齐: result1
但是,当我输入较大的数字时,这是不好的结果,您可以看到TotalPrice标签未按预期对齐: result2
这是我的带有硬编码字符串的代码,仅供测试:
GridPane grid = new GridPane();
//Delete Button
Button btn = new Button("X");
btn.setPrefWidth(40);
btn.setPrefHeight(40);
//Labels
Label productName = new Label("MaxiCheeseBurger Menu");
Label productPrice = new Label("120 den");
Label productQty = new Label("x1");
Label totalPrice = new Label("120 den");
totalPrice.setMaxWidth(Double.MAX_VALUE);
totalPrice.setAlignment(Pos.CENTER_RIGHT);
//Styling labels
productName.setStyle("-fx-font-size: 14;" +
"-fx-font-weight: bold;" +
"-fx-text-fill: #707070;");
totalPrice.setStyle("-fx-font-size: 14;" +
"-fx-font-weight: bold");
//Setting grid column constraints
for (int i = 0; i < 5; i++) {
ColumnConstraints col = new ColumnConstraints();
col.setPercentWidth(100.0 / 5);
col.setHgrow(Priority.ALWAYS);
col.setFillWidth(true);
grid.getColumnConstraints().add(col);
}
//Adding nodes to grid
grid.add(btn, 0, 0, 1, 2);
grid.add(productName, 1, 0, 4, 1);
grid.add(productPrice, 1, 1);
grid.add(productQty, 2, 1);
grid.add(totalPrice, 3, 1, 2, 1);
GridPane.setFillWidth(totalPrice, true);
GridPane.setHalignment(totalPrice, HPos.RIGHT);
grid.setGridLinesVisible(true);
grid.setHgap(3);
rows.getChildren().add(grid);
rows.setSpacing(5);
receipt_section.setContent(rows);
receipt_section.setPadding(new Insets(0, 0, 0, 5));