设置 GridPane 中各个单元格的颜色 (JavaFX)

问题描述 投票:0回答:1

我正在为一个班级项目制作俄罗斯方块,我想到利用网格窗格将舞台划分为均匀间隔的行和列。我打算单独更改每个单元格的颜色以模拟实际的部件,但我不知道从这里开始该怎么做。我尝试添加彩色矩形,但这不起作用。

颜色取自名为 colorArray 的 15X10 二维数组,每个索引处都有特定的颜色。

public void start(Stage primaryStage) throws Exception {
    pane = new GridPane();
    pane.setGridLinesVisible(true);
    pane.setVgap(40);
    pane.setHgap(40);
    primaryStage.setResizable(false);
    scene = new Scene(pane,height,width);
    for(int x = 0; x < 16; x++){
        pane.getRowConstraints().addAll(getFifteenRowConstraints());
        for(int y = 0; y<10; y++){
            pane.getColumnConstraints().addAll(getTenColumnConstraints());


        }
    }
    primaryStage.setScene(scene);
    primaryStage.setTitle("Russian Game");
    primaryStage.show();
}

我想我不太确定行和列约束是什么,我所知道的是我均匀放置了由线分隔的单元格。

我将如何单独更改每个单元格的颜色?

java javafx colors tetris gridpane
1个回答
0
投票

查看 JavaFX 中的 Rectangle 类。这是在 JavaFX 中将矩形绘制为黑色的示例。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class Driver extends Application {

  public static void main(String[] args) {
    Application.launch(args);
  }

  @Override
  public void start(Stage primaryStage) {
    Group group = new Group();

    Rectangle rect = new Rectangle(20,20,200,200);

    rect.setStroke(Color.BLACK);
    group.getChildren().add(rect);

    Scene scene = new Scene(group, 300, 200);
    primaryStage.setScene(scene);
    primaryStage.show();
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.