Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

499
Views
JavaFx: el ajuste de texto no funciona en Checkbox dentro de VBox

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?

Captura de pantalla: ingrese la descripción de la imagen aquí

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: ingrese la descripción de la imagen aquí

añadiendo

 <maxWidth><Control fx:constant="USE_PREF_SIZE" /></maxWidth>

al VBOX interno pude corregir esto: ingrese la descripción de la imagen aquí

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.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

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>
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!