为什么我的对象没有显示在JavaFX中?

为什么我的对象没有显示在JavaFX中?,java,javafx,Java,Javafx,这应该是一个相对简单的问题,但它让我发疯。我正在尝试用JavaFX创建扫雷器(主要是为了练习),但我甚至不能得到一个简单的矩形来显示。我曾经让游戏运行过一次,但我试图使游戏更抽象,从而更容易编码,但我遇到了没有显示的问题 我消除了所有无关的代码,所以它尽可能简单。我基本上是尝试创建一个具有特定颜色和大小的矩形,称为Box,将Box添加到窗格中,然后显示窗格。为了使长方体成为可以显示在窗格上的节点,我将长方体类扩展为矩形,以便长方体具有与矩形相同的属性。但是当我运行代码时,它只给出了一个没有方框的

这应该是一个相对简单的问题,但它让我发疯。我正在尝试用JavaFX创建扫雷器(主要是为了练习),但我甚至不能得到一个简单的矩形来显示。我曾经让游戏运行过一次,但我试图使游戏更抽象,从而更容易编码,但我遇到了没有显示的问题

我消除了所有无关的代码,所以它尽可能简单。我基本上是尝试创建一个具有特定颜色和大小的矩形,称为Box,将Box添加到窗格中,然后显示窗格。为了使长方体成为可以显示在窗格上的节点,我将长方体类扩展为矩形,以便长方体具有与矩形相同的属性。但是当我运行代码时,它只给出了一个没有方框的空窗格

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class Minesweeper extends Application {

    @Override
    public void start(Stage stage) {

        Pane pane = new Pane();

        Box box = new Box();

        pane.getChildren().addAll(box);     

        // Create the scene
        Scene scene = new Scene(pane);
        stage.setTitle("Minesweeper");
        stage.setScene(scene);
        stage.show();

    }

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

}

import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;

public class Box extends Rectangle {

    public Box() {

        Rectangle box = new Rectangle(100, 100, 100, 100);

        box.setFill(Color.BLUE);

    }

}
我意识到,如果我将Box中的代码放入主扫雷舰类,它将显示Box。但是Box将有大量其他属性,因此需要自己成为一个类

我做错了什么,不允许显示框


提前感谢您的帮助和考虑。

您可以在
类中创建一个新的
矩形
。此
矩形
未添加到任何
父容器,因此不可见。
将代码更改为:

    public Box() {
        super(100, 100, 100, 100);
        setFill(Color.BLUE);
    }

您正在Box构造函数中创建一个新的矩形对象,但不将其存储在任何位置或对其执行任何操作。是否有一些
paint
方法应该覆盖?太完美了。非常感谢你。这也很有道理。