Изменить ровно один цвет фона метки в JavaFx - PullRequest
1 голос
/ 11 февраля 2020

Я пытаюсь создать тетрис. Я создал GridPane и заполнил ширину и высоту метками, используя вложенность для l oop, затем поместил 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);
    }
}

enter image description here

...