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

标签 java javafx

这应该是一个相对简单的问题,但它让我发疯。我正在尝试在 JavaFX 中创建扫雷器(主要只是为了练习),但我什至无法显示一个简单的矩形。我之前运行过一次游戏,但我试图让游戏更抽象,从而更容易编码,但我遇到了不显示任何内容的问题。

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

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 类中创建一个新的 Rectangle。此 Rectangle 未添加到任何 Parent 容器中,因此它不可见。 将代码更改为:

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

关于java - 为什么我的对象没有在 JavaFX 中显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228290/

相关文章:

java - 安卓:Epub 文件在模拟器/安卓设备中不显示图像

java - java中的Pentaho Kettle程序按列合并多个csv文件

java - 将两个 ToggleButtons 绑定(bind)到一个 BooleanProperty

java - 聊天应用程序网络客户端

JAVA System.out.println 方程

java - 客户端似乎已连接但服务器未接受它

JavaFX ScrollPane - 如何使用一个滚动条来滚动 2 个 ScrollPanes?

java - 如何更改 javafx tableview 中单元格的颜色?

java - 一次设置多个按钮的样式 [Javafx]

java - 如何在调用方返回数据之前等待 JavaFX 服务完成?