Programación General > Java
No Me Valida
(1/1)
serbc25:
Hola a todos:
Tengo un JTextfield(), en el que solo puedo meter numeros, no caracteres introduzco este evento:
txtEdad.addKeyListener(new KeyAdapter(){
public void ketTyped(KeyEvent e){
char tecla = e.getKeyChar();
if((tecla < '0') && (tecla > '9')){
e.consume(); // ignorar el evento de teclado
}
}
});
Y no me hace nada.
Que solucion hay, gracias
silverfox:
Hola...
--- Citar ---if((tecla < '0') && (tecla > '9')){
--- Fin de la cita ---
Veamos...
Si el código del '0' en ASCII es el 48 y el código del '9' es el 57... premio para tí si me dices qué número es menor que el 48 y mayor que el 57 al mismo tiempo.
Un saludo.
Silverfox
escape:
--- Cita de: "serbc25" ---Hola a todos:
Tengo un JTextfield(), en el que solo puedo meter numeros, no caracteres introduzco este evento:
txtEdad.addKeyListener(new KeyAdapter(){
public void ketTyped(KeyEvent e){
char tecla = e.getKeyChar();
if((tecla < '0') && (tecla > '9')){
e.consume(); // ignorar el evento de teclado
}
}
});
Y no me hace nada.
Que solucion hay, gracias
--- Fin de la cita ---
Estás utilizando el operador lógico incorrectamente, en vez de utilizar && cambialo por || .
Ahora como observación te sugeriría que no usaras consume() si estás validando entradas de datos a los JTextFields. Siempre es mejor mostrar por pantalla un mensaje que indique al usuario que error ha cometido. Por otra parte, en vez de utilizar el método keyTyped(), cambialo por keyReleased() . La idea seria de esta forma:
--- Código: Text --- public void keyReleased(KeyEvent e){ char tecla = e.getKeyChar(); JTextField t = (JTextField)e.getSource(); if(tecla < '0' || tecla > '9') { JOptionPane.showMessageDialog(this, "Ingrese Datos Numéricos", "Error", JOptionPane.ERROR_MESSAGE); t.setText(""); t.requestFocus(); }}
Navegación
Ir a la versión completa