javafx - javafx:如何设置组的边界,以便它显示内部许多形状的特定窗口,这可能会或可能不会超出我的预期边界?
问题描述
我有一个 JavaFX 组,其中包含很多 ImageViews 和一些叠加层。我希望它渲染一个特定的数学矩形,该矩形通常与组合子对象的边界框不匹配。对于一个更简单的具体示例,我创建了以下应用程序:
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);
}
}
我需要的是让它看起来像
如果我知道告诉 Group 将其视口限制为 [-200..200] 中的 x 和 [-200..200] 中的 y 的方法调用,我就可以做到这一点。
一条评论建议设置剪辑。添加 agr.setClip(new Rectangle(-200,-200, 400,400));
会导致它不绘制绿色圆圈,但渲染的窗口包含与第一个(不受欢迎的)屏幕截图相同的空间。因此剪辑不会影响 Group 如何决定其渲染窗口。
我应该使用什么技术来将此意图指定给 javafx 的布局引擎?
解决方案
推荐阅读
- input - 读后执行写
- python - 如何在 Python 中将随机生成的变量保存到程序中?
- c# - 如何使损害客户端团结一致?
- python - 使用漂亮的汤 python 从标签中提取 html ID
- javascript - 声明接口而不是类型
- vue.js - 将 v-bind 添加到属性时 v-dialog 的 v-btn 消失
- c# - 我们如何在 PDFLib set-graphics-option 中传递专色值列表?
- javascript - 使用 map() 从另一个数组元素值更改数组元素顺序
- node.js - 使用 npm 和 Zurb Foundation 安装 Swup 的问题
- python - 使用 Beautiful Soup 4 提取带有连字符的属性值