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

标签 java javafx-8

我试图水平打印数字,然后以相反的顺序显示,现在,在下面的代码中,逻辑是正确的并在控制台上显示数字,imrpimi 好的,如第二个链接所示和在 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 行等。

迭代的顺序没有区别。

如果您希望在第 11 行中使用 1,在第 10 行中使用 2,在第 9 行中使用 3 等等,那么您必须注意rowIndex = 12 - number 并调用

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

关于java - 在 JavaFX 中以水平和相反的顺序打印数字并显示在标签上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31144179/

相关文章:

java - Firebase session 管理 : Issues with instatiating Global User

java - 如何验证输入到 DatePicker 中的日期?

java - 阻塞队列消费者和竞争条件

java - 使用 touchDragged (libGDX) 上下更改音量

Java Swing GroupLayout 不包括预期的 3 个按钮。如何解决这个问题?

用于显示两个给定值中较高版本的Java代码

java - 无法更新 url 和更新 webview

java - 如何在 JavaFX 中设置字体的字母间距(又名跟踪)?

java - 如何实现javafx鼠标事件 "push and hold"?

java - 如何在预加载器中处理 java web start (jnlp) 下载进度?