3

我有一个组,我想完全自己管理其坐标转换。内置layoutXlayoutY属性搞砸了,我想完全禁用它们。

似乎至少有两种方法可以做到这一点。relocate(0,0)或者只是将属性设置为 0。但是在Group构造中这样做还为时过早;反正那里的值是0。

那么:我如何告诉Group他们不要打扰布局?

当然,我也可以保留 layoutX|Y 原样,并在我自己的变换中对其进行补偿。这就是B计划。

参考。JavaFX 节点

4

1 回答 1

5

这个问题有点难以理解,但我猜你在某种托管布局窗格中有一个Group(例如StackPaneVBox),但你不希望 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);
于 2013-01-03T08:39:17.010 回答