Javafx中的滚动条处于非滚动状态

Javafx中的滚动条处于非滚动状态,java,javafx,scrollbar,fxml,gridpane,Java,Javafx,Scrollbar,Fxml,Gridpane,GridPane中有两个折线图: @FXML private GridPane LineChartVBox=新建GridPane(); 这是我的滚动条: ScrollBar sc=new ScrollBar(); sc.setMin(0); sc.setOrientation(方向垂直); hbox1.getChildren().addAll(LineChartVBox,sc); sc.valueProperty().addListener(新的ChangeListener()){ publ

GridPane中有两个折线图:

@FXML
private GridPane LineChartVBox=新建GridPane();
这是我的滚动条:

ScrollBar sc=new ScrollBar();
sc.setMin(0);
sc.setOrientation(方向垂直);
hbox1.getChildren().addAll(LineChartVBox,sc);
sc.valueProperty().addListener(新的ChangeListener()){

public void changed(observevalue我同意VGR,您应该使用滚动窗格。 但是,您的滚动条似乎太高,您可以尝试:

sc.maxHeightProperty().bind(scene.heightProperty());
我复制粘贴了你的代码,你的监听器正在工作,我没有用同一个HBox进行测试,我想它也是修复GridPane位置的HBox


您可以尝试手动
bind()
您的滚动条位置,但也可以尝试使用
LineChartVBox.setTranslateY(-new_val.doubleValue());
我同意VGR您应该使用滚动窗格。 但是,您的滚动条似乎太高,您可以尝试:

sc.maxHeightProperty().bind(scene.heightProperty());
我复制粘贴了你的代码,你的监听器正在工作,我没有用同一个HBox进行测试,我想它也是修复GridPane位置的HBox


您可以尝试手动将滚动条位置绑定到
bind()
,但也可以尝试使用
LineChartVBox.setTranslateY(-new_val.doubleValue());

不要使用滚动条,而是将网格窗格放在一个屏幕中。我也尝试过,但它甚至没有给我滚动选项…通常,滚动窗格的默认行为是在需要时才显示滚动条。这意味着,如果网格窗格不大于显示区域,则不会显示任何滚动条。这种行为可以通过更改滚动窗格的属性来更改。在布局过程中,
HBox
分配子级的
layoutX
layoutY
。如果修改其中一个子级的属性,这只会触发另一个布局过程,撤消这些修改。您可以使用
translateY
来移动子级相对于父对象指定的位置,但我强烈建议使用
ScrollPane
。如果将子对象放置在
HBox
中的最小高度超过场景大小,则会导致未定义的行为。在这种情况下,
fillHeight
会将所有子对象调整到该高度,而不是使用ScrollBar,将您的网格窗格放在中。我也尝试过,但它甚至没有给我滚动选项…通常,滚动窗格的默认行为是在需要之前不显示滚动条。这意味着,如果您的网格窗格不大于显示区域,则不会显示滚动条。可以通过更改滚动窗格.A
HBox
在布局过程中分配子级的
layoutX
layoutY
。如果修改其中一个子级的属性,这只会触发另一个布局过程,撤消这些修改。您可以使用
translateY
相对于分配给b的位置移动子级它是父对象,但我强烈建议使用
滚动窗格
。如果将子对象放置在
HBox
中的最小高度超过场景大小,则会导致未定义的行为。在这种情况下,
填充高度
会将所有子对象的大小调整为该高度。。。