2017-11-25 97 views
0

您能否告訴我,如何使窗格可滾動?我可以使圖像滾動,像這樣:要使窗格在JavaFX中可滾動

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

但是,當我試圖讓整個面板滾動,它由一些按鈕和一個小動畫,有關於發生什麼滾動條。沒有滾動條。我該如何解決這個問題?

預先感謝您。

回答

0

我試圖自己做,這是因爲您的滾動窗格具有固定的寬度和高度,通過調整窗口大小,您的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