Tengo algunos elementos de la interfaz de usuario que quiero apilar verticalmente, en el centro del panel, todos alineados en el borde izquierdo del centro. Intenté hacer esto con un VBox y funcionó hasta que agregué un elemento que tenía un texto demasiado largo; siempre trunca el texto con puntos suspensivos y no puedo hacer que ajuste el texto a la siguiente línea. Configuré el parámetro wrapText en verdadero en la casilla de verificación, pero no parece respetarlo. Intenté configurar perfWidth y maxWidth en la casilla de verificación y el vbox en el que se encuentra, pero nada parece funcionar. ¿Alguien puede decirme qué estoy haciendo mal?
envoltura de texto.fxml
<?import java.net.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.*?> <?import javafx.scene.control.ToggleGroup?> <VBox xmlns:fx="http://javafx.com/fxml" maxWidth="100" prefHeight="200" prefWidth="300" alignment="BASELINE_CENTER" spacing="30"> <VBox alignment="CENTER" maxWidth="100" prefWidth="100"> <VBox spacing="10" style=" -fx-border-color:black; -fx-border-width: 1; -fx-border-style: solid;" alignment="BASELINE_LEFT" > <padding> <Insets top="0" right="0" bottom="10" left="5"/> </padding> <RadioButton text="Option 1"> <toggleGroup> <ToggleGroup fx:id="group"/> </toggleGroup> <selected>true</selected> </RadioButton> <RadioButton text="Option 2"> <toggleGroup> <fx:reference source="group"/> </toggleGroup> </RadioButton> </VBox> <CheckBox text="My Long Textbox Text" selected="true" wrapText="true"> </CheckBox> </VBox> </VBox>TextWrap.java
import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class TextWrap extends Application { @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("textwrap.fxml")); Scene scene = new Scene(root, 300, 275); stage.setTitle("Text Wrap"); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(); } } EDITAR: como señaló @jewelsea a continuación, los problemas eran BASELINE_CENTER en el VBox raíz; cambiar eso al centro eliminó el problema de truncamiento. Esto tuvo el efecto secundario no deseado de hacer que el exterior alrededor de las cajas de radio se extendiera más de lo que me gustaba: 
añadiendo
<maxWidth><Control fx:constant="USE_PREF_SIZE" /></maxWidth> al VBOX interno pude corregir esto: 
También descubrí que si por alguna razón me casaba con BASELINE_CENTER, aún podía solucionar el problema con el texto de la casilla de verificación agregando
<minWidth><Control fx:constant="USE_PREF_SIZE" /></minWidth>a la casilla de verificación para obtener el mismo efecto.
Esto es lo que se me ocurrió, pruébalo y ve si es lo que quieres.
Es posible que deba cambiar algunas cosas para lograr el diseño final que desea, pero es de esperar que esto solucione su problema de envoltura inmediato.
Creo que la alineación BASELINE_CENTER en el VBox externo confundió las cosas, pero cambié un par de otras cosas, por lo que puede haber sido otra cosa.
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.geometry.Insets?> <?import javafx.scene.control.CheckBox?> <?import javafx.scene.control.RadioButton?> <?import javafx.scene.control.ToggleGroup?> <?import javafx.scene.layout.VBox?> <VBox alignment="CENTER" prefHeight="200.0" prefWidth="300.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1"> <children> <VBox maxWidth="100.0" prefWidth="100.0"> <VBox alignment="BASELINE_LEFT" spacing="10" style=" -fx-border-color:black; -fx-border-width: 1; -fx-border-style: solid;"> <padding> <Insets bottom="10" left="5" right="0" top="0"/> </padding> <RadioButton text="Option 1"> <toggleGroup> <ToggleGroup fx:id="group"/> </toggleGroup> <selected>true</selected> </RadioButton> <RadioButton text="Option 2"> <toggleGroup> <fx:reference source="group"/> </toggleGroup> </RadioButton> </VBox> <CheckBox selected="true" text="My Long Textbox Text" wrapText="true"> </CheckBox> </VBox> </children> </VBox>