напечатать номер в горизонтальном и обратном порядке и показать на этикетке в JavaFX

Я пытаюсь напечатать цифры в горизонтальной плоскости, а затем показать в обратном порядке, теперь, в следующем ниже коде, логика правильная и показывает номер на консоли, imrpimi okay, как показано во второй ссылке, и покажите эти же значения в метке в 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

Любые предложения, я ценю и благодарю.

+1
30 июн. '15 в 17:02
источник поделиться
1 ответ

Параметры root.add(...) - это узел, который вы добавляете, индекс столбца и индекс строки. Таким образом, вы всегда добавляете метку, отображающую number в number строки number + 3: т.е. 8 идет в строке 11, 7 идет в строке 10 и т.д.

Порядок итераций не имеет значения.

Если вы хотите 1 в строке 11, 2 в строке 10, 3 в строке 9 и т.д., rowIndex = 12 - number вы должны заметить, что rowIndex = 12 - number и вызов

root.add(label, 0, 12 - number); 
+1
30 июн. '15 в 18:30
источник

Посмотрите другие вопросы по меткам или Задайте вопрос