So, first things first, I have achieved what I wanted, and that is, display some amount of text in the center of a \"zone\". Screenshot (upper right corner):
Use a StackPane rather than a BorderPane. By default a StackPane will center any node you put in it. To me, this is the simplest, most intuitive solution.
<StackPane>
<Label text="No information"/>
</StackPane>
Another way to handle it is to set constraints on the label itself so that the label will expand to fill a resizable area and center itself within the area:
<SplitPane dividerPositions="0.5"
prefHeight="400.0"
prefWidth="600.0"
xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<items>
<StackPane />
<Label alignment="CENTER"
maxHeight="1.7976931348623157E308"
maxWidth="1.7976931348623157E308"
text="Label" />
</items>
</SplitPane>
If it is a multi-line label (e.g. it has \n
new lines in the text or the available width forces a wrap because you constrain the width and set wrapText="true"
), then you need an additional setting to center the multi-line text within the label: textAlignment="true"
. textAlignment
is different from alignment
; in particular, textAlignment
applies only to multi-line controls.