我正在开发一个 javafx 项目,该项目在 ScrollPane 中有一个 VBox。问题是,当 vBox 的高度减小时,scrollPane 自动向上滚动。我怎样才能防止这种情况发生?知道高度增加时它不会滚动!
注意:在垂直框内,我有一些按钮可以添加/删除一些文本字段,从而导致垂直框高度的增加/减少。
由于工作规定,我无法显示整个代码,但这里是我在 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 自动滚动到该元素。
要更改此设置,您可以在删除 Button 或/和 TextField 之前在代码中添加例如 mainVBox.requestFocus();
。
关于java - 如何防止javafx中SrollPane自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222199/