【发布时间】:2014-09-24 20:50:29
【问题描述】:
将标签添加到已添加到另一个窗格的窗格时,我遇到了布局问题。
就像这个例子:
public class MyClass extends Pane {
private final Pane myPane;
public MyClass() {
this.myPane.prefWidthProperty().bind(this.widthProperty);
this.myPane.prefHeightProperty().bind(this.heightProperty);
this.getChildren().add(this.myPane);
}
@Override
layoutChildren() {
this.foo();
}
private void foo() {
this.myPane.getChildren().add(new Label("foo"));
}
}
问题在于它只是无限地调用 layoutChildren。奇怪的一件事是,如果我添加文本而不是标签,则不会出现“问题”。
我检查了每个节点的大小,它们没有改变。在我看来,有人正在扩展,因此调用了布局,但我就是找不到在哪里。
我错过了什么琐碎的事情吗?
【问题讨论】:
-
为什么在一个类
MyClass内有一个窗格myPane,它已经在扩展一个窗格。此外,绑定宽度和高度?您应该在这里阐明您要实现的目标。 -
我在这里尝试提取主要问题,不幸的是代码非常复杂,我不能在这里发布。在此处的窗格中创建窗格确实没有意义,但实际上确实如此:)