要使窗格在JavaFX中可滚动

问题描述:

您能否告诉我,如何使窗格可滚动?我可以使图像滚动,像这样:要使窗格在JavaFX中可滚动

 VBox root = new VBox(); 
     ScrollPane sp = new ScrollPane(); 
     sp.setContent(new ImageView(new Image(getClass().getResourceAsStream("test.png")))); 
     root.getChildren().add(sp); 

但是,当我试图让整个面板滚动,它由一些按钮和一个小动画,有关于发生什么滚动条。没有滚动条。我该如何解决这个问题?

预先感谢您。

我试图自己做,这是因为您的滚动窗格具有固定的宽度和高度,通过调整窗口大小,您的scroll pane不会自己调整大小。您可以使用anchor pane,因此滚动窗格将使用anchor pane调整大小。你可以这样做:

ImageView image = new ImageView(new Image("wp1951596.jpg")); 
    ScrollPane scrollPane = new ScrollPane(); 
    scrollPane.setContent(image); 
    scrollPane.setPrefSize(400, 400); 
    AnchorPane.setTopAnchor(scrollPane, 0.); 
    AnchorPane.setRightAnchor(scrollPane, 0.); 
    AnchorPane.setBottomAnchor(scrollPane, 0.); 
    AnchorPane.setLeftAnchor(scrollPane, 0.); 
    rootPane.getChildren().add(scrollPane); 

我也推荐你使用JavaFX和.fxml文件。然后你可以在SceneBuilder中创建你的布局,它将使一切变得更加简单快捷。

+0

嗨,谢谢你有关sceneBuilder的建议。现在我知道嵌套容器的规则了。现在我总是用我的scrollPane和AnchorPane滚动条。不幸的是,现在我面临着另一个问题,因为当我缩放图像时,滚动窗格不再工作。我想我必须以编程方式解决它,因为需要注册听众。可能每次图像改变大小时,scrollPane都必须更新。不过,由于screenBuilder的学习效果,我会将您的答案标记为最佳答案。 – Toti