以水平和反向顺序打印数字并显示在 JavaFX 中的标签上

print number in horizontally and reverse order and show on label in JavaFX

我正在尝试横向打印数字然后倒序显示,现在,在下面的代码中,逻辑正确并在控制台上显示数字,imrpimi okay,如第二个所示link 并在 JavaFX 的标签中显示这些相同的值,显示与所需解决方案相反的结果

public class GridPane extends Application {

  @Override
  public void start(Stage primaryStage) {
    GridPane root = new GridPane();
    root.setPadding(new Insets(5));
    root.setAlignment(Pos.CENTER);
    for (int number = 8; number > 0; number--) {
      StringBuilder str = new StringBuilder();
      str.append(number);
      Label label = new Label(str.toString());
      System.out.println(str.toString());
      label.setFont(Font.font("Arial", FontWeight.BOLD, 13));
      label.setPrefSize(20, 20);
      root.add(label,0, number + 3);
    }

    Scene scene = new Scene(root, 900, 900);
    primaryStage.setTitle("Grid Pane Example");
    primaryStage.setScene(scene);
    primaryStage.show();
  }

  public static void main(String[] args) {
    launch(args);
  }

为了测试程序,我得到的是输出http://i.imgur.com/Jeh0zWp.jpg

目标是遵循控制台正确显示结果的逻辑,如下所示http://i.imgur.com/jH9jAs1.jpg

任何建议,我很感激和感谢。

root.add(...) 的参数是您要添加的节点、列索引和行索引。因此,您总是在行 number + 3 中添加显示 number 的标签:即 8 进入第 11 行,7 进入第 10 行,等等

迭代顺序没有区别。

如果你想要 1 在第 11 行,2 在第 10 行,3 在第 9 行,等等,那么你必须注意到 rowIndex = 12 - number 和打电话

root.add(label, 0, 12 - number);