【问题标题】:JavaFX scrollpane never scrollsJavaFX 滚动窗格从不滚动
【发布时间】: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 来证明您的问题。

标签: java javafx-8


【解决方案1】:

尝试: 使用 ListView 而不是 ScrollPane。

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

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

【讨论】:

  • mainBox 是位于 Tab 内的主容器,它位于 TabPane 中。不知道为什么我应该使用ListView...为什么滚动窗格没有按预期工作?
  • 这应该是评论而不是解决方案。
猜你喜欢
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多