Dando formato a tus campos de texto en Java Swing 🎨

¡Hola a todos! Cuando desarrollamos aplicaciones de escritorio con Java Swing, a menudo necesitamos asegurarnos de que los usuarios ingresen datos en un formato específico, como números, moneda o porcentajes. Afortunadamente, no tienes que escribir tu propia lógica de validación, ya que JFormattedTextField está diseñado precisamente para esta tarea.

En este artículo, te mostraré cómo usar JFormattedTextField para dar formato a tus campos de texto y también cómo procesar esos valores una vez que los obtengas.


1. Formato de entrada con JFormattedTextField

El JFormattedTextField es un componente de texto que utiliza un Formatter para dar formato a los datos que el usuario ingresa. Aquí tienes unos ejemplos prácticos:

Para texto simple:

JFormattedTextField textFormatted = new JFormattedTextField("Texto de ejemplo");
String texto = textFormatted.getText();

Para valores de moneda:

// Crea un campo de texto con el formato de moneda por defecto de tu sistema.
JFormattedTextField currencyField = new JFormattedTextField(java.text.NumberFormat.getCurrencyInstance());

Para valores de porcentaje:

// Crea un campo de texto con el formato de porcentaje.
JFormattedTextField percentField = new JFormattedTextField(java.text.NumberFormat.getPercentInstance());

Con estas líneas, el componente se encargará automáticamente de mostrar el formato correcto y de restringir la entrada del usuario.


2. Procesando valores formateados

A veces, cuando recuperamos el valor de un campo, viene con caracteres de formato (como puntos o signos de moneda) que necesitamos eliminar antes de convertirlo a un tipo numérico.

Aquí te muestro cómo limpiar un valor para convertirlo a un tipo long o double:

// Asume que txtClean es un JFormattedTextField que contiene un número con puntos.
// Ejemplo: "123.456.789"

// Elimina los puntos y luego los espacios.
String cleanString = txtClean.getText().replace('.', ' ').replaceAll(" ", "");

// Convierte la cadena limpia a un valor numérico.
long val = Long.valueOf(cleanString);
System.out.println("Valor numérico: " + val);

// Si necesitas un valor decimal, puedes hacer lo siguiente:
// String cleanStringDecimal = txtClean.getText().replace(',', '.');
// double decimalVal = Double.valueOf(cleanStringDecimal);
// System.out.println("Valor decimal: " + decimalVal);

Análisis del código:

  • .replace('.', ' '): Reemplaza los puntos por espacios. Esto es útil si el formato de la moneda utiliza puntos como separadores de miles.

  • .replaceAll(" ", ""): Elimina todos los espacios en blanco restantes.

  • Long.valueOf(cleanString): Convierte la cadena limpia en un valor numérico de tipo long.

Este enfoque es muy útil para asegurarte de que tus datos están limpios y listos para ser procesados por tu lógica de negocio.

¿Qué otros trucos de formato de datos has encontrado útiles en tus proyectos de Java Swing? ¡Déjanos un comentario y comparte tu experiencia!

About Mario | Macla Editorial

Especialista en tecnología y ciberseguridad corporativa. Consultor en estrategias de transformación digital, automatización con IA y análisis de infraestructura. A través de MaclaTech, asesoro a organizaciones en la implementación de soluciones tecnológicas seguras y escalables para el mercado global.

0 comments:

Publicar un comentario