Как изменить стиль всех элементов в панели grid с помощью javafx?

#button #javafx #gridpane

#кнопка #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 amp;amp; gZone.getColumnIndex(node) == col) {
                    node.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(0),new Insets(0))));
                    break;
                }
            }
        }
    }
  

Ответ №1:

Я, наконец, использовал массив со всеми кнопками, чтобы я мог изменить их следующим образом :

 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("");
        }
    }