【发布时间】:2016-09-16 13:42:56
【问题描述】:
在 JavaFX 中我有这样的东西:
VBox centreBox = new VBox();
ScrollPane scrollPane = new ScrollPane(centreBox);
mainHBox.getChildren().add(scrollPane);
然后当用户点击一个按钮时,就会触发一个动作:
button.setOnMouseClicked(event -> {
for(Object obj : list) {
HBox box = ...; // here I create a box based on obj
centreBox.getChildren().add(box);
}
});
问题是list 很长,最终将centreBox 的高度延伸到窗口大小之外。但是,滚动条永远不会被触发。
我尝试将滚动条策略设置为始终,但滚动条始终保持在 100% 的高度(即无法移动它们)。基本上问题是滚动窗格似乎并不关心高度centreBox。
在 API 上阅读了一些关于它的内容后,我还尝试添加一个组:
Group group = new Group(scrollPane);
mainHBox.getChildren().add(group);
但仍然没有喜悦。
我认为这与内容是动态生成的事实有关。如果我从一开始就将一些元素硬编码到那里,它似乎可以正常工作。
如何解决这个问题?
提前致谢
【问题讨论】:
-
我刚刚编写了一个简单的程序来测试这一点,我的 ScrollPane 在将节点添加到其内容时表现正常。请编辑您的问题并提供MCVE 来证明您的问题。