如何使用 javafx 更改网格窗格中所有项目的样式?
How to change the style of all the items in a grid pane using javafx?
我正在使用包含一些按钮的网格窗格。当我们点击一个按钮时,它会改变样式,我正在实现一个重置按钮。我想要做的是在我们点击那个 reset
按钮时应用特定的样式。
这是我的代码,我试图让按钮应用默认样式:
public void displayNewBoard(){
for (int row = 0; row < GRID_WIDTH; row++) {
for (int col = 0; col < GRID_HEIGHT; col++) {
gZone.getChildren().setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
}
}
}
gZone
是我的网格窗格,我想获取每个按钮,但该行不正确。
我也试过其他方法:
for (int row = 0; row < GRID_WIDTH; row++) {
for (int col = 0; col < GRID_HEIGHT; col++) {
for (Node node : gZone.getChildren()) {
if(gZone.getRowIndex(node) == row && gZone.getColumnIndex(node) == col) {
node.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
break;
}
}
}
}
我最终使用了一个包含所有按钮的数组,因此我可以像这样更改它们:
for (int row = 0; row < GRID_WIDTH; row++) {
for (int col = 0; col < GRID_HEIGHT; col++) {
grid[row][col].setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
grid[row][col].setText("");
}
}
我正在使用包含一些按钮的网格窗格。当我们点击一个按钮时,它会改变样式,我正在实现一个重置按钮。我想要做的是在我们点击那个 reset
按钮时应用特定的样式。
这是我的代码,我试图让按钮应用默认样式:
public void displayNewBoard(){
for (int row = 0; row < GRID_WIDTH; row++) {
for (int col = 0; col < GRID_HEIGHT; col++) {
gZone.getChildren().setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
}
}
}
gZone
是我的网格窗格,我想获取每个按钮,但该行不正确。
我也试过其他方法:
for (int row = 0; row < GRID_WIDTH; row++) {
for (int col = 0; col < GRID_HEIGHT; col++) {
for (Node node : gZone.getChildren()) {
if(gZone.getRowIndex(node) == row && gZone.getColumnIndex(node) == col) {
node.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
break;
}
}
}
}
我最终使用了一个包含所有按钮的数组,因此我可以像这样更改它们:
for (int row = 0; row < GRID_WIDTH; row++) {
for (int col = 0; col < GRID_HEIGHT; col++) {
grid[row][col].setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
grid[row][col].setText("");
}
}