Измените ровно один цвет фона метки в JavaFx

Я пытаюсь создать тетрис. Я создал GridPane и заполнил ширину и высоту метками, используя вложенный цикл for, а затем поместил GridPane в сцену. Как я могу изменить фон определенной метки, все метки имеют координаты. Я хочу изменить фон этикетки, потому что тогда я смогу делать разные тетрамино для игры. Может быть, есть лучшие подходы к созданию тетрамино в Тетрисе, которых я не знаю. Мой код.

public class Menu extends Application {

    private GridPane Grid = new GridPane(); //Layout

    private Label label = new Label();      // Label

    private int height = 600; private int width = 600;  private int pixel = 30;



    @Override
    public void start(Stage Stage) throws Exception {

        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

        Stage.setTitle("Tetris");

        Grid.setGridLinesVisible(true);

        Scene scene = new Scene(Grid, width, height); // Add Layout to scene

        FillingLayoutWithLabels(width,height);

        Stage.setScene(scene);

        Stage.show();
    }

    private void FillingLayoutWithLabels(int width, int height) {

        for(int i = 0;i< width/pixel ;i++){

            for(int j = 0;j<height/pixel ; j++){

                addLabel(i,j);
            }
        }
    }

    public void addLabel(int columnIndex, int rowIndex) {

        Label label = new Label();

        label.setMinWidth(pixel);

        label.setMinHeight(pixel);

        label.setBackground(new Background(new BackgroundFill(Color.RED, CornerRadii.EMPTY, Insets.EMPTY)));

        label.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1))));

        Grid.setColumnIndex(label, columnIndex);

        Grid.setRowIndex(label, rowIndex);

        label.setId(rowIndex+ " " + columnIndex);

        Grid.getChildren().add(label);
    }
}

введите здесь описание изображения


person Jules    schedule 11.02.2020    source источник
comment
Делает ли это или это отвечает на ваш вопрос?   -  person c0der    schedule 11.02.2020
comment
соглашения об именах java, пожалуйста!   -  person kleopatra    schedule 11.02.2020
comment
Спасибо, c0der, извините за поздний ответ, я попробовал методы по вашим предложенным ссылкам, но у меня возникли некоторые проблемы, и я обнаружил, что мне нужно удалить эту строку Grid.setGridLinesVisible(true), чтобы мой код работал подробно, почему в этом Ссылка   -  person Jules    schedule 11.02.2020
comment
GridPane и Label для этого могут все усложнить. Я бы использовал Shape. Я начал играть в тетрис давным-давно и так и не закончил. github.com/sedj601/TetrisApp/tree/master/src/tetrisapp   -  person Sedrick    schedule 11.02.2020
comment
Возможно, это плохое предложение, но я бы не стал использовать GridPane для чего-то столь же динамичного, как тетрис, я предлагаю использовать панель или холст и использовать единый размер блока, чтобы поддерживать его организованность, и перемещать вещи, например, с помощью таймера анимации.   -  person Lukas Owen    schedule 11.02.2020
comment
Я просто вернулся и посмотрел на код ссылки, которую я разместил. Я бы не рекомендовал его использовать.   -  person Sedrick    schedule 13.02.2020