private Node wrapAndStyle(Region node, int rowNumber) { Pane p = new Pane(node); node.setPadding(new Insets(5.0)); GridPane.setFillWidth(p, true); p.minHeightProperty().bind(node.heightProperty()); // Hack - wrapped labels don't seem to fire their height property changes at the right time - // leaving the surrounding Pane node too small. // this seems to help... Platform.runLater(() -> p.autosize()); p.getStyleClass().add(((rowNumber % 2 == 0) ? "evenGridRow" : "oddGridRow")); return p; }