使用内部类在JavaFX中显示三角形

使用内部类在JavaFX中显示三角形,java,javafx,Java,Javafx,我试图创建一个内部类,根据给定的变量创建一个三角形,然后在JavaFX场景中显示它。我的当前代码如下所示: public class OuterClass extends Application { public class InnerClass extends Polygon { Polygon triangle; InnerClass(double x, double y, double side) { double mySideSqrt = Math.sqr

我试图创建一个内部类,根据给定的变量创建一个三角形,然后在JavaFX场景中显示它。我的当前代码如下所示:

public class OuterClass extends Application {
public class InnerClass extends Polygon {
    Polygon triangle;
    InnerClass(double x, double y, double side) {
        double mySideSqrt = Math.sqrt((side * side) - (side / 2 * side / 2)) / 2;
        double tX = x;
        double tY = y - mySideSqrt;
        double rX = x + side / 2;
        double rY = y + mySideSqrt;
        double lX = x - side / 2;
        double lY = y + mySideSqrt;

        Polygon triangle = new Polygon(tX, tY, rX, rY, lX, lY);
        this.triangle = triangle;
    }
}

@Override
public void start(Stage primaryStage) {
    int myWidth = 600;
    int myHeight = 519;

    primaryStage.setTitle("Triangle");
    Group root = new Group();
    Scene scene = new Scene(root, myWidth, myHeight);

    //Polygon triangle = new Polygon(100.0, 0.0, 200.0, 173.3, 0, 173.3); //100.0, 0.0, 200.0, 100.0, 0.0, 100.0
    InnerClass triangle = new InnerClass(300, 260, 196);
    triangle.setFill(Color.LIGHTGRAY);
    root.getChildren().add(triangle);
    primaryStage.setScene(scene);
    primaryStage.show();
}
}

当我调试代码时,它似乎在断行:

InnerClass triangle = new InnerClass(300, 260, 196);
因为在内部类中创建的三角形没有拉入方法,因此不会显示在场景中


有什么办法让它工作吗?

删除
多边形三角形和更改
多边形三角形=新多边形(tX、tY、rX、rY、lX、lY);这个三角形=三角形
getPoints().addAll(tX、tY、rX、rY、lX、lY)

全班:

public class InnerClass extends Polygon {
    InnerClass(double x, double y, double side) {
        double mySideSqrt = Math.sqrt((side * side) - (side / 2 * side / 2)) / 2;
        double tX = x;
        double tY = y - mySideSqrt;
        double rX = x + side / 2;
        double rY = y + mySideSqrt;
        double lX = x - side / 2;
        double lY = y + mySideSqrt;

        getPoints().addAll(tX, tY, rX, rY, lX, lY);
    }
}

删除
多边形三角形和更改
多边形三角形=新多边形(tX、tY、rX、rY、lX、lY);这个三角形=三角形
getPoints().addAll(tX、tY、rX、rY、lX、lY)

全班:

public class InnerClass extends Polygon {
    InnerClass(double x, double y, double side) {
        double mySideSqrt = Math.sqrt((side * side) - (side / 2 * side / 2)) / 2;
        double tX = x;
        double tY = y - mySideSqrt;
        double rX = x + side / 2;
        double rY = y + mySideSqrt;
        double lX = x - side / 2;
        double lY = y + mySideSqrt;

        getPoints().addAll(tX, tY, rX, rY, lX, lY);
    }
}

非常感谢,效果很好。你能解释一下为什么“getPoints().addAll(tX,tY,rX,rY,lX,lY);”在我的方法中起作用吗?我假设它将这些变量传递到多边形函数中?您创建了两个多边形,第一个是
InnerClass
,它不包含任何点,第二个包含点的多边形隐藏在第一个多边形函数中。非常感谢,效果很好。你能解释一下为什么“getPoints().addAll(tX,tY,rX,rY,lX,lY);”在我的方法中起作用吗?我假设它将这些变量传递到多边形函数中?您创建了两个多边形,第一个是
InnerClass
,它不包含任何点,第二个包含点的多边形隐藏在第一个多边形的内部。