I'm writing a JavaFX application and I'd like to create a screen that contains 2 long pieces of text. I don't know what the text is ahead of time, it will be filled in by some code at run time.
To do this I thought I'd make a VBox with 2 Labels. I assume that if I don't add dimensions, the Labels will span the VBox. Since the text is long I'd like it to wrap.
Here's the FXML that I tried:
<VBox spacing="20" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label fx:id="label1" text="Dummy Text" wrapText="true" />
<Label fx:id="label2" text="Dummy Text" wrapText="true" />
</children>
</VBox>
This doesn't work because the text doesn't wrap but simply goes off the right side of the window. What do I need to get this to work?
Try to set prefWidth and prefHeight , since your label doesnt know when to start wrap
<VBox prefHeight="100.0" prefWidth="300.0" ...
If that does not work try it on parent contrainer of HBox. Are you using scene builder? I recommend you to use it
Works well(its auto generated):
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="333.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
<center>
<VBox prefHeight="200.0" prefWidth="325.0" BorderPane.alignment="CENTER">
<children>
<Label text="Wrap text Wrap text Wrap text Wrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap text" wrapText="true" />
<Label layoutX="10.0" layoutY="10.0" text="just textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust text" />
</children>
</VBox>
</center>
</BorderPane>
Did you use stylesheets there with class name "label1" and "label2" if you did, setting wrapText="true"
will not work there in the fxml code
wrapText="true"
is still setor
-fx-word-wrap: break-word;
in the particular class;If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With