.getChildren().add() 需要一个节点并且无法添加我的对象

.getChildren().add() requires a node and cant add my object

我做了一个单独的 class 来在 JavaFX 中设置网格。 class如下:

public class Grid { 
    GridPane gp = new GridPane(); //sets grid (10x10)
    gp.setHgap(10);
    gp.setVgap(10);
    gp.setBorder(null);
    gp.setPadding(new Insets(15,15,15,15));

    int[][] shots = new int[10][10];

    for(int i = 0; i<10; i++) {
        for (int j = 0; j < 10; j++) {
            Rectangle r = new Rectangle(40 , 40);
            gp.add(r, j, i);
        }
    }
}

然后我有

Group root = new Group();
Grid g = new Grid();
root.getChildren().add(g);

但它会抛出以下内容...

The method add(Node) in the type List is not applicable for the arguments (Grid)

我知道 Grid 不是 Node 类型,因此无法添加,但我真的不知道我应该更改什么来添加它。我试过了

public class Grid extends GridPane{}

允许在Main中添加对象,但是,它不会将变量添加到gp GridPane中其他 class.

有什么建议吗?

您试图将 class 的对象添加到组中,该对象的数据成员是一个节点。相反,您必须将节点本身添加为组的子节点。 试试这个方法:

Group root = new Group();
Grid g = new Grid();
root.getChildren().add(g.gp);