Java-контроллер
public class MainContentController implements Initializable {
@FXML private ScrollPane scrollPane;
public void initialize(URL arg0, ResourceBundle arg1) {
Random r = new Random();
JFXMasonryPane masonryPane = new JFXMasonryPane();
scrollPane.setContent(masonryPane);
scrollPane.setFitToWidth(true);
for (int i = 0; i < 6000; i++) {
Label lbl = new Label(String.valueOf(i));
lbl.setAlignment(Pos.CENTER);
lbl.setPrefSize(r.nextInt(200), r.nextInt(200));
lbl.setStyle("-fx-background-color:rgb(" + r.nextInt(255) + "," + r.nextInt(255) + "," + r.nextInt(255) + ");");
masonryPane.getChildren().add(lbl);
}
}
}
И FXML
<GridPane xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainContentController">
<rowConstraints>
<RowConstraints percentHeight="20.0" />
<RowConstraints percentHeight="20.0" />
<RowConstraints percentHeight="20.0" />
<RowConstraints percentHeight="20.0" />
<RowConstraints percentHeight="20.0" />
</rowConstraints>
<columnConstraints>
<ColumnConstraints percentWidth="25.0" />
<ColumnConstraints percentWidth="25.0" />
<ColumnConstraints percentWidth="25.0" />
<ColumnConstraints percentWidth="25.0" />
</columnConstraints>
<children>
<ScrollPane fx:id="scrollPane" GridPane.columnSpan="4" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.rowSpan="3" GridPane.valignment="CENTER"/>
</children>
</GridPane>
Пытался использовать самый простой пример, который я могу показать, что я имею в виду.Когда вы выполняете этот код, он генерирует 6000 блоков произвольного размера / цвета, как это и должно быть.Тем не менее, количество, которое можно увидеть, зависит от ширины вашего окна, и оно изменяется по мере его изменения.Теоретически, это должно отображать все 6000 блоков, и вам просто нужно прокрутить дальше, если ваше окно уже, что является моим намерением / целью.Однако на некоторой, казалось бы, небывалой высоте он просто отсекает все, что будет под ним.Я не могу найти какие-либо настройки или методы, которые оказали бы какое-либо влияние на это.
Использование JFXMasonryPane от JFoenix .Однако я не уверен, является ли это проблемой с их библиотекой или с моим использованием ScrollPane.