javafx:如何设置组的边界,使其显示内部许多形状的特定窗口,这些形状可能超过或不超过预期的边界?

javafx:如何设置组的边界,使其显示内部许多形状的特定窗口,这些形状可能超过或不超过预期的边界?,javafx,Javafx,我有一个JavaFX组,其中包含很多ImageView和一些覆盖图。我希望它渲染一个特定的数学矩形,它通常与组合子对象的边界框不匹配。对于一个更简单的具体示例,我创建了以下应用程序: import javafx.application.*; import javafx.scene.*; import javafx.scene.layout.*; import javafx.scene.paint.*; import javafx.scene.shape.*; import javafx.stag

我有一个JavaFX组,其中包含很多ImageView和一些覆盖图。我希望它渲染一个特定的数学矩形,它通常与组合子对象的边界框不匹配。对于一个更简单的具体示例,我创建了以下应用程序:

import javafx.application.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.stage.*;

public class GroupWindow
    extends Application
{
    @Override
    public void start(Stage stage)
        throws Exception
    {
        Group gr = new Group();

        Shape circle1 = new Circle(-300, 0, 50);
        circle1.setFill(Color.GREEN);
        gr.getChildren().add(circle1);

        Shape circle2 = new Circle(0, 300, 50);
        circle2.setFill(Color.GREEN);
        gr.getChildren().add(circle2);

        Shape LLrect = new Rectangle(-200, 0, 200,200);
        LLrect.setFill(Color.BLUE);
        gr.getChildren().add(LLrect);

        VBox vbox = new VBox(gr);

        stage.setScene(new Scene(vbox));

        stage.show();
    }

    public static void main(String[] args)
    {
        Application.launch(args);
    }
}
当我运行应用程序时,我会看到一个窗口,看起来像

我需要的是让它看起来像

如果我知道方法调用,它会告诉组将其视口限制为[-200..200]中的x和[-200..200]中的y,那么我就可以实现这一点

一条评论建议设置一个剪辑。添加
gr.setClip(新矩形(-200,-200400400))使其不绘制绿色圆圈,但渲染窗口包含与第一个(不需要的)屏幕截图相同的空间。因此,剪辑不会影响组决定其渲染窗口的方式

我应该使用什么技术来为javafx的布局引擎指定此目的?

查看设置是否适合您。查看设置是否适合您。