我试图水平打印数字,然后以相反的顺序显示,现在,在下面的代码中,逻辑是正确的并在控制台上显示数字,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/