Foros del Web » Programación para mayores de 30 ;) » Java »

JavaFX TextField

Estas en el tema de JavaFX TextField en el foro de Java en Foros del Web. Buenas. Tengo un par de dudas sobre los textfield en javaFX: -¿Cómo puedo hacer para que en un textfield sólo se puedan escribir números? y ...
  #1 (permalink)  
Antiguo 21/06/2013, 08:36
 
Fecha de Ingreso: mayo-2013
Ubicación: Algeciras
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
JavaFX TextField

Buenas.

Tengo un par de dudas sobre los textfield en javaFX:

-¿Cómo puedo hacer para que en un textfield sólo se puedan escribir números?

y algo que tiene relación con lo mismo

-¿Cómo puedo limitar el número de caracteres en un textfield y que sigan un patrón? Por ejemplo, que sólo puedan introducir 8 números y una letra (en plan DNI).

He buscado por la API y en varios sitios, pero no doy con la solución, espero que me puedan ayudar!

Gracias.
  #2 (permalink)  
Antiguo 23/06/2013, 09:09
 
Fecha de Ingreso: julio-2004
Mensajes: 35
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: JavaFX TextField

Nunca he usado javaFX aunque la verdad es que tengo mucho interés en aprender a usarlo. Si conoces algún tutorial te lo agradeceré.

Respecto a lo que dices. Me imagino que podrás hacer lo mismo que en SWING.

Usa expresiones Regulares.

Veamos un ejemplo para DNI

/**
* A este método le pasamos un String y nos devuelve true si coincide con el patrón
*/
public boolean validarDni(String dni)
{
boolean cumplePatron = Pattern.matches("\\d{8}-[A-Z]", dni);
return cumplePatron;
}

Donde dni es el parámetro que pasamos al método para saber si cumple el patrón.
"\\d{8}-[A-Z]" Es el String que representa nuestro patrón y se traduce como, 8 dígitos, un guión y un carácter en mayúscula. "\\d" puede sustituirse por "[0-9]".
cumplePatron Es una variable booleana que valdrá true si dni coincide con el patrón.
Pattern es una clase que representa un patrón. su método matches, compara dos String, la primera es el patrón y la segunda es la cadena que vamos a analizar.

Si quieres trabajar con dígitos tienes "[0-9]" o "\\d". Si quieres recoger un número fijo de dígitos lo pones entre llaves {} ej. 8 dígitos "[0-9]{8}" si no sabes cuántas veces se va a repetir tienes los siguientes modificadores:
"[0-9]?" Dígitos, como máximo puede aparecer uno, pero puede no aparecer ninguno.
"[0-9]+" Como mínimo un dígito
"[0-9]*" Un dígito, varios dígitos o ninguno.

Etiquetas: javafx, textfield
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:13.