我有一个由图像组成的TilePane,tilepane内的图像取决于用户选择的文件夹内图像的数量。但是tilepane中没有滚动窗格,所以我决定将tilePane放在ScrollPane中,但是我无法控制滚动窗格的高度来占据整个页面。
public ScrollPane viewGallery(Stage stage)
{
ScrollPane root = null;
final TilePane tile = new TilePane();
try{
root = new ScrollPane();
tile.setPadding(new Insets(5, 5, 5, 5));
tile.setVgap(4);
tile.setHgap(4);
tile.setPrefHeight(stage.getHeight());
tile.setStyle("-fx-background-color: DAE6F3;");
File[] listOfFiles = outputFolder.listFiles();
System.out.println(outputFolder.listFiles().length);
for (File file : listOfFiles) {
System.out.println(file.getPath());
Image image = new Image("file:"+file.getPath());
ImageView iv2 = new ImageView();
iv2.setImage(image);
iv2.setFitWidth(250);
iv2.setPreserveRatio(true);
iv2.setSmooth(true);
iv2.setCache(true);
tile.getChildren().add(iv2);
}
}catch(Exception e)
{
e.printStackTrace();
}
root.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // Horizontal scroll bar
root.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); // Vertical scroll bar
root.setFitToHeight(true);
root.setFitToWidth(true);
root.setContent(tile);
return root;
}
输出是生命的......
答案 0 :(得分:0)
问题不在于scrollPane或TilePane,我将scrollPane添加到borderPane并且我正在使用:
border.setTop(viewGallery(Stage stage));
只需将上述代码更改为以下代码即可解决我的问题..
border.setCenter(viewGallery(Stage stage));
文档很清楚:
将顶部和底部儿童调整到他们喜欢的高度,并扩展边框的宽度。左右子项将调整为其首选宽度,并扩展顶部和底部节点之间的长度。并且将调整中心节点的大小以填充中间的可用空间