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

Ayuda Jtextfield Y Expresiones Regulares

Estas en el tema de Ayuda Jtextfield Y Expresiones Regulares en el foro de Java en Foros del Web. Hola, tengo un problema que lo he buscado por la web y no lo he pordido solucionar. Quiero validar en un jTextField "telefono" que solo ...
  #1 (permalink)  
Antiguo 27/06/2007, 08:59
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 1
Ayuda Jtextfield Y Expresiones Regulares

Hola, tengo un problema que lo he buscado por la web y no lo he pordido solucionar. Quiero validar en un jTextField "telefono" que solo me permitan ingresar numeros , -, () y espacio. Probé con jFormattedTexfield leyendo la ayuda de java que me recomendaron y no funcionó. Ahora estoy probando con jtextfield y expresiones regulares. Trabajo con netbeans y hasta ahora tengo lo siguiente:

public class PatternDocument extends PlainDocument {

private Pattern pattern ;

public PatternDocument(String pattern) {
super();
setPattern(pattern);
}

public void setPattern(String pattern) {
this.pattern = Pattern.compile(pattern) ;
}

public void insertString(int offset, String s, AttributeSet attributeSet) throws BadLocationException {

Matcher m = pattern.matcher(getText(0, getLength()));
if (m.matches()){
super.insertString(offset,s,attributeSet);
}else{
Toolkit.getDefaultToolkit().beep();
}
}
}

Por favor si alguien tiene algun ejemplo o alguna idea estaría agradecido.
Saludos
Luis
  #2 (permalink)  
Antiguo 27/06/2007, 10:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Ayuda Jtextfield Y Expresiones Regulares

Cita:
Iniciado por luisprod Ver Mensaje
...Probé con jFormattedTexfield leyendo la ayuda de java que me recomendaron y no funcionó...
¿Y exáctamente cual era el problema? Por que en teoría fue creado especificamente para este tipo de usos.

S!
  #3 (permalink)  
Antiguo 28/06/2007, 12:51
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Ayuda Jtextfield Y Expresiones Regulares

GreenEyed, el problema con la jFormattedTextField es que te permite crear solo formatos predefinidos como fecha, solo letras, solo numeros o ambos pero no te deja, por lo que leí, crear formatos definidos por uno mismo como permitir el guión o el parentesis o el espacio. Por otra parte, mediante la mascara, tiene un largo fijo, por lo tanto no soluciona mi problema. Si sabes alguna forma de hacer esto con jformattedtextfield, por favor, avisame pero en el link me me distes no pude encontrar nada.
Saludos
  #4 (permalink)  
Antiguo 28/06/2007, 13:53
 
Fecha de Ingreso: mayo-2007
Mensajes: 210
Antigüedad: 17 años
Puntos: 8
Re: Ayuda Jtextfield Y Expresiones Regulares

puedes intentar crear una clase document, creas una clase que extienda de PlainDocument sobreescribes el metodo insertString() dentro de ese metodo trata de hacer la validaciones yo lo uso para validar que solo se ingresen numeros y me funciona muy bien, y para finalizar existe un metodo en el jtextfield llamado setDocument() le mandas de parametro la instancia de tu clase

salu2
  #5 (permalink)  
Antiguo 29/06/2007, 00:27
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Ayuda Jtextfield Y Expresiones Regulares

Chuidiang tiene ejemplos de como crear tus propias clases para aceptar valores y para las mascaras del campo:
http://www.chuidiang.com/java/ejempl...ield.php#clase

S!
  #6 (permalink)  
Antiguo 29/06/2007, 07:33
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Ayuda Jtextfield Y Expresiones Regulares

Gracias a ambos por las respuestas dadas. De totas forma escontré una manera fácil y rápida. Acá va:

Para por ejemplo, una jtextfield en donde ingrese un número de telefono en donde permita solo numeros o espacios guiones o parentesis para las caracteristicas. El código se ingresa al instanciar la jtextfield

txtTelefono.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (Character.isLetter(c)){
e.consume();
}
}
});

Para por ejemplo, una jtextfield en donde ingrese numeros o letras pero sin espacios ni signos. Esto puede servir para para el ingreso de un codigo.
También se ingresa al instanciar la jtextfield

txtCodigo.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!((Character.isLetterOrDigit(c)))){
e.consume();
}
}
});

Saludos
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 20:30.