I want to add ui nodes dynamically to a gridapanes row without shrinking ..and instead of shrinking gridpane should enable scrolling (grid pane is in a scroll pane)..but neither of them is happening...
All I am attempting is to create a event calender with ability to view events of whole month as days in the top row (so at least 30 columns).
Controller class
package sample;
import javafx.fxml.Initializable;
import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller implements Initializable {
public GridPane gridPane;
@Override
public void initialize(URL location, ResourceBundle resources) {
for (int i = 0; i <= 20; i++) {
VBox box = new VBox();
Label label = new Label(Integer.toString(i));
label.setMinHeight(50);
label.prefHeight(50);
label.setMaxHeight(50);
gridPane.setGridLinesVisible(true);
label.setStyle("-fx-background-color:yellow;");
box.getChildren().add(label);
box.setAlignment(Pos.CENTER);
gridPane.add(box, 0, i);
}
Label labe2 = new Label("HelloWorld");
labe2.setMinHeight(80);
gridPane.add(labe2, 0, 15);
}
}
Really need help
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
prefWidth="600.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="sample.Controller">
<children>
<AnchorPane layoutX="39.0" layoutY="15.0" prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0"
AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<ScrollPane fitToHeight="true" fitToWidth="true" pannable="true" prefHeight="239.0" prefWidth="331.0"
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="0.0">
<content>
<GridPane fx:id="gridPane" prefHeight="239.0" prefWidth="331.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints>
</GridPane>
</content>
</ScrollPane>
</children>
</AnchorPane>
</children>
</AnchorPane>
solved this issue..instead of creating the grid pan in scene builder ..just create the grid using code and set constrains through code...try to create constrains early as possible in your execution order of the code..
didn't work out for me using scene builder created grid pane