我有一个组,我想完全自己管理其坐标转换。内置layoutX
和layoutY
属性搞砸了,我想完全禁用它们。
似乎至少有两种方法可以做到这一点。relocate(0,0)
或者只是将属性设置为 0。但是在Group
构造中这样做还为时过早;反正那里的值是0。
那么:我如何告诉Group
他们不要打扰布局?
当然,我也可以保留 layoutX|Y 原样,并在我自己的变换中对其进行补偿。这就是B计划。
参考。JavaFX 节点
这个问题有点难以理解,但我猜你在某种托管布局窗格中有一个Group(例如StackPane或VBox),但你不希望 Group 的布局值由布局窗格设置- 在这种情况下,您可以使组不受管理。
例如,在下面的代码中,组的非托管性质使其具有 0,0 的布局坐标,而不是 50,60 的布局坐标,StackPane 通常会将其设置为在父 StackPane 内居中。
Group group = new Group(new Rectangle(100, 80));
group.setManaged(false);
StackPane container = new StackPane();
container.setMinSize(StackPane.USE_PREF_SIZE, StackPane.USE_PREF_SIZE);
container.setPrefSize(200, 200);
container.setMaxSize(StackPane.USE_PREF_SIZE, StackPane.USE_PREF_SIZE);
container.getChildren().add(group);