0
votes

im trying to add multiply VBox to a gridpane (called refPane in the following codesnippet) which is inside a scrollpane.

    int columnIndex = 0;
    int rowIndex = 0;
    int boxWidth = windowWidth/ITEMS_PER_ROW;
    int boxHeight = windowHeight/ITEMS_PER_COLUMN;

    for(int i=0; i<items.size(); i++){
        VBox vBox = new VBox();
        vBox.setPrefWidth(boxWidth);
        vBox.setPrefHeight(boxHeight);

        Label label1 = new Label();
        label1.setText("ImgPlaceholder");
        label1.setPrefWidth(boxWidth);
        label1.setPrefHeight(boxHeight / 100 * 70);
        vBox.getChildren().add(label1);

        Label label2 = new Label();
        label2.setText("Description");
        label2.setPrefWidth(boxWidth);
        label2.setPrefHeight(boxHeight / 100 * 30);
        label2.setPadding(new Insets(0,0,0, 10));
        vBox.getChildren().add(label2);

        refPane.add(vBox, columnIndex, rowIndex);

        if(columnIndex != 0 && columnIndex % GAMES_PER_ROW == 0){
            rowIndex++;
            columnIndex = 0;
        }else {
            columnIndex++;
        }

It adds no more then ITEMS_PER_ROW Vboxes in one row and continues in the next row. Also there should be no more rows then ITEMS_PER_COLUM visible. The problem is, if I add more then ITEMS_PER_ROW * ITEMS_PER_COLUMN to the grid, instead ob beeing scrollable, the vboxes just get smaller in size.

Any Ideas? Thanks in advance.

1

1 Answers

2
votes

Chances are javafx is prioritizing shrinking the VBox's over expanding your grid pane. Try setting the minHeight of each VBox, to be equal to its prefHeight to keep them from shrinking vertically.