Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > JFormatedTextField '.' decimal

Hola compañer@s de aventuras:

¿Alguien sabe cómo podemos hacer para idioma español que el punto decimal sirva para separar los decimales del euro?

Me explico, tengo un JFormatedTextField con una máscara numérica con 2 decimales (#,##0.00) y si introduzco por ejemplo 12.23 obtengo 1.223,00.
para obtener 12.23 tengo que usar la coma 12,23 pero eso es un engorro ya que no puedes usar el teclado numérico y para aplicaciones que necesitan rapidez y constante entrada de valores monetarios no es viable.

¿alguien me puede decir como lo resuelve?

Muchas gracias.

febrero 24, 2012 | Registered Commentermarcmiralles

Prueba con esta máscara: #,##0.##

febrero 24, 2012 | Registered Commenterchoces

Gracias choces:
¡Qué va!, se comporta del mismo modo. Lo que pretendo es que el punto del teclado numérico sirva para establecer los decimales.
¿alguna otra idea?

febrero 24, 2012 | Registered Commentermarcmiralles

Si utilizas un Locale de americano o ingles funcionara tal como dices

febrero 25, 2012 | Unregistered CommenterPaposo

Gracias Paposo

Puse esto en mi JInternalFrame después de Initcomponents() y tampoco:


txtyAcumuladoVentas.setLocale(Locale.ENGLISH);

También probé con Locale.US y tampoco.

Toy desesperado. BUUUUAAAAAA!!!!!!!, BUUUUUAAAAAA!

febrero 25, 2012 | Registered Commentermarcmiralles

Lo encontré: aquí

// Formato de visualización
NumberFormat dispFormat = NumberFormat.getCurrencyInstance();
// Formato de edición: inglés (separador decimal: el punto)
NumberFormat editFormat =
NumberFormat.getNumberInstance(Locale.ENGLISH);
// Para la edición, no queremos separadores de millares
editFormat.setGroupingUsed(false);
// Creamos los formateadores de números
NumberFormatter dnFormat = new NumberFormatter(dispFormat);
NumberFormatter enFormat = new NumberFormatter(editFormat);
// Creamos la factoría de formateadores especificando los
// formateadores por defecto, de visualización y de edición
DefaultFormatterFactory currFactory =
new DefaultFormatterFactory(dnFormat, dnFormat, enFormat);
// El formateador de edición admite caracteres incorrectos
enFormat.setAllowsInvalid(true);
// Asignamos la factoría al campo
txtyAcumuladoVentas.setFormatterFactory(currFactory);

febrero 25, 2012 | Registered Commentermarcmiralles