如何防止在 javafx 中的 SrollPane 中自动滚动

How to prevent autoscroll in SrollPane in javafx

我正在开发一个在 ScrollPane 中有一个 VBox 的 javafx 项目。问题是当 vBox 的高度减小时,scrollPane 会自动向上滚动。我怎样才能防止呢?知道高度增加不滚动!

注意:在 vBox 中我有一些按钮 add/remove 一些 TextFields 导致 VBox 高度的 increasing/decreasing。

由于工作规定,我无法显示整个代码,但这是我在 ScrollPane 中定义和添加 VBox 的地方:

    VBox mainVBox = new VBox();
    mainVBox.setStyle("-fx-background-color: #0292b7");
    mainVBox.setPrefWidth(400); 
    mainVBox.setSpacing(10);
    mainVBox.setPadding(new Insets(3,5,3,5));
    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setContent(mainVBox);
    scrollPane.setPrefWidth(420);
    scrollPane.setPrefHeight(600);
    VBox.setVgrow(scrollPane,Priority.ALWAYS);

此行为的原因是您删除了当前具有焦点的元素。这导致焦点转移到容器中的第一个元素,并且 ScrollPane 自动滚动到该元素。

要更改此设置,您可以在删除按钮 or/and TextField 之前在代码中添加例如 mainVBox.requestFocus();