将ListView的prefWidthProperty绑定到包含AnchorPane的widthProperty会破坏AnchorPane的大小调整

时间:2014-12-11 14:02:02

标签: java javafx fxml

我有一个TabPane,其中包含两个Tab,并在FXML中设置。在初始化时,我动态地将AnchorPane添加到Tab之一。然后我将ListView设置为AnchorPane

的孩子
AnchorPane questionPane = new AnchorPane();
questionPane.setId("questionPane");
ListView questionList = new ListView();
questionPane.getChildren().add(questionList);

这完全没问题。出于调试目的,我为AnchorPane提供了橙色背景(通过CSS),当我现在调整窗口大小时,AnchorPane得到的内容按预期调整大小。
但是,只要我将以下代码添加到代码中,AnchorPane只能增长并且不再缩小,导致我的窗口超大:

questionList.prefWidthProperty().bind(questionPane.widthProperty());

任何人都可以解释一下,为什么这一行打破了AnchorPane

的大小调整

1 个答案:

答案 0 :(得分:1)

很可能你没有指定ListView的锚定:

AnchorPane.setBottomAnchor(questionList , 8.0);
AnchorPane.setRightAnchor(questionList , 5.0);
AnchorPane.setTopAnchor(questionList , 8.0);
AnchorPane.setLeftAnchor(questionList , 5.0);

不再需要绑定。