Css javafx:构建自己的矩形

Css javafx:构建自己的矩形,css,javafx-2,javafx,fxml,Css,Javafx 2,Javafx,Fxml,我是java/javafx的新手。不管怎么说,当谈论标准功能时,一切都很好,工作正常。今天我尝试创建自己的具有特定行为的矩形,但失败了 代码非常简单: package sample; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox

我是java/javafx的新手。不管怎么说,当谈论标准功能时,一切都很好,工作正常。今天我尝试创建自己的具有特定行为的矩形,但失败了

代码非常简单:

package sample;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class Main2 extends Application {

    //@Override
    public void start(Stage primaryStage) throws Exception {
        Group root = new Group();
        Rectangle myRest1 = new Rectangle(0, 0, 12, 12);
        myRest rect2 = new myRest();

        HBox hBox = new HBox();
        final VBox vBox = new VBox();

        vBox.setPrefSize(500, 500);
        vBox.setStyle("-fx-background-color: yellowgreen");

        vBox.getChildren().add(hBox);
        vBox.getChildren().add(myRest1);
        vBox.getChildren().add(rect2);

        primaryStage.setTitle("Rectangles");
        root.getChildren().add(vBox);
        primaryStage.setScene(new Scene(root, 500, 500));
        primaryStage.show();
    }

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

class myRest extends Rectangle {

    Rectangle rect = new Rectangle(0, 0, 100, 100);
}
为什么标准矩形工作正常,但我自己的(myRest)根本不工作。我为这么愚蠢的问题感到抱歉,但我真的不知道为什么


祝您度过愉快的一天,并感谢您事先提供的帮助。

您没有设置尺寸。您在myRest中创建的内部矩形没有放置任何位置

myRest rect2 = new myRest();
此行调用myRest的默认构造函数。因为您没有在自己的类中指定构造函数,所以它会调用默认构造函数
Rectangle
。像这样重写类中的构造函数

class myRest extends Rectangle {

   public myRest()
   {
       super(100,100); //for fixed dimensions
   }

}
您的行
Rectangle rect=新矩形(0,0,100,100)
创建一个矩形作为
myRest
的属性