gpt4 book ai didi

java - 为什么这只会在网格上产生一个按钮?

转载 作者:行者123 更新时间:2023-12-03 23:14:18 25 4
gpt4 key购买 nike

当我运行它时,它只创建一个按钮。我正在尝试创建一个 gridPane 按钮,10x10,当单击一个按钮时,它会将行列(x,y)坐标发送到另一个类来处理它的目的(战舰游戏)

    Button button[][] = new Button[10][10];
public static int rows, columns, gridSize;

for (rows = 0; rows < 10; rows++) {
for (columns = 0; columns < 10; columns++) {
button[rows][columns] = new Button();
button[rows][columns].setStyle("-fx-background-color: red");
button[rows][columns].setPrefSize(50, 50);

button[rows][columns].setOnMouseClicked(new clickEvents(rows, columns));
//no setters, directly passed rows and cols to clickEvents Class

tileGrid.getChildren().add(button[rows][columns]); //adds buttons to the tile grid
}
}

container.getChildren().addAll(tileGrid);

ScrollPane scrollPane = new ScrollPane(container);
primaryStage.setScene(new Scene(scrollPane));
primaryStage.show();

最佳答案

您没有告诉系统将按钮放在 GridPane 中的什么位置。

使用gridPane.add(child, colIndex, rowIndex) :

tileGrid.add(button[row][column], column, row); 

我修正了拼写并从行、列变量中删除了复数(尾随“s”)。

或者,您可以 set constraints在 GridPane 中的节点上:

tileGrid.getChildren().add(button[row][column]);
GridPane.setConstraints(button[row][column], column, row);

但是使用在初始添加参数中指定约束的 add 方法(如前面的示例)会更简洁。

对作为子节点添加到网格的节点没有任何限制,所有子节点都将位于默认的 0,0 网格位置(全部堆叠在彼此之上)。

关于java - 为什么这只会在网格上产生一个按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59203121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com