这应该是一个相对简单的问题,但它让我发疯。我正在尝试在 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/