JavaFX scrollpane从不滚动

时间:2016-09-16 13:42:56

标签: java javafx-8

在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);

但仍然没有快乐。

我认为这与内容是动态生成的事实有关。如果我从一开始就将一些元素硬编码到那里就好了。

如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:-1)

尝试: 使用ListView而不是ScrollPane。

编辑: 为了使用列表内容动态填充窗格:

HBox box[obj] = ...; // here I create a box based on obj