Ir al contenido principal

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!

Comentarios

Entradas Populares

Renombrar una columna en Oracle: Guía rápida y sencilla 💻

¡Hola a todos! En el mundo de las bases de datos, es común necesitar hacer ajustes en la estructura de las tablas, y una de las tareas más frecuentes es renombrar una columna. Ya sea por un error tipográfico, una mejora en la nomenclatura o un cambio en los requisitos, saber cómo hacerlo de manera eficiente es fundamental. Afortunadamente, Oracle facilita esta tarea con una sintaxis simple y directa. A continuación, te muestro cómo puedes renombrar una columna de una tabla en un solo paso. La sintaxis para renombrar una columna Para cambiar el nombre de una columna, utilizamos la sentencia ALTER TABLE . Esta es la forma más segura y recomendada de modificar la estructura de una tabla sin afectar los datos existentes. ALTER TABLE <nombre_de_la_tabla> RENAME COLUMN <nombre_antiguo_del_campo> TO <nuevo_nombre_del_campo>; COMMIT; Análisis de la sintaxis: ALTER TABLE <nombre_de_la_tabla> : Esta parte de la sentencia le indica a Oracle que vas a modificar la estructur...

¿Tu PC no puede instalar la actualización KB5034441? No te preocupes, aquí tienes la solución y la explicación

Sabemos que iniciar el 2024 con problemas técnicos no es lo ideal. Si has intentado instalar la reciente actualización KB5034441 y te has encontrado con el frustrante error 0x80070643 , no estás solo. Este problema ha afectado a muchos usuarios y puede causar una gran confusión, especialmente cuando la descarga parece ir bien, pero la instalación se detiene en 0%. En este artículo, vamos a desglosar qué es lo que está causando este error, por qué no es tan grave como parece y qué pasos puedes seguir para manejarlo. Mensaje de Error Entendiendo el error 0x80070643 en la actualización KB5034441 La actualización KB5034441 está diseñada para reforzar la seguridad de tu entorno de recuperación de Windows (Windows Recovery Environment, WinRE), especialmente para aquellos que utilizan la función de cifrado de disco BitLocker. La intención es buena, pero la implementación ha revelado un problema para ciertos sistemas. El código de error 0x80070643 se traduce como ERROR_INSTALL_FAILURE , y e...