JavaFX在窗格中居中显示一个角度

JavaFX在窗格中居中显示一个角度,java,javafx,Java,Javafx,我有以下代码,其中包含一个矩形的基本窗格: public class Canvas extends Pane{ public Canvas() { Rectangle rect = new Rectangle(50,50, Color.GOLD); this.setBackground(new Background(new BackgroundFill(Color.INDIANRED,new CornerRadii(0),new Insets(0)))); this.s

我有以下代码,其中包含一个矩形的基本窗格:

public class Canvas extends Pane{

public Canvas() {
    Rectangle rect = new Rectangle(50,50, Color.GOLD);
    this.setBackground(new Background(new BackgroundFill(Color.INDIANRED,new CornerRadii(0),new Insets(0))));
    this.setPrefSize(200, 200);
    rect.setX((this.getMaxWidth()/2) + (rect.getWidth()));
    rect.setY((this.getMaxHeight()/2) + (rect.getHeight()));
    this.getChildren().add(rect);
}

我已经尝试了一些方法将三角形的中心放在窗格的中心(上面代码中的一个示例),但是由于在JavaFX中矩形的X和Y坐标表示左上角,因此在窗格中使其居中变得更加困难。我的数学很差,不知道实现这一目标的正确公式。 如何使矩形的中心与窗格的中心对齐?
不使用Stackpane等…

您希望将矩形的中点与窗格的中点对齐

您必须找到窗格的中点(x和y)和矩形(x和y)

//找到窗格的中点。
//x中点
float xPaneMidpoint=pane.width/2
//y中点
浮动yPaneMidpoint=pane.height/2
然后将矩形移动到窗格中点的位置,然后将其偏移一半大小

//取窗格的中点,将矩形移动到该点。
//然后将其偏移一半宽度/高度
setX(xPaneMidpoint-(rectangle.width/2));
rectangle.setX(yPaneMidpoint-(rectangle.height/2));