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

Como ocultar un caracter presionado en un TextField

Estas en el tema de Como ocultar un caracter presionado en un TextField en el foro de Java en Foros del Web. pues no soy novato pero tampoco experto, e aprendido JAVA por necesidad (osea a somatones y no muy bien), pues mi pregunta es que quiero ...
  #1 (permalink)  
Antiguo 12/02/2010, 10:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Como ocultar un caracter presionado en un TextField

pues no soy novato pero tampoco experto, e aprendido JAVA por necesidad (osea a somatones y no muy bien), pues mi pregunta es que quiero tener un TextField y que cada tecla que presione me verifique si es un caracter valido para ese campo, si yo se que me diran que use un JFormattedTextField, pero ya los e usado y pues me e topado que cuando le doy un fomato a este digamos de ejemplo ##.##, me fuerza a meter los 4 numeros y pues si el usuario solo quiere meter enteros el formattedField no acepta ese valor y me lo borra, al final en algunos casos es bueno pero en otros no,

ya me alarque pero era para explicar, lo que quiero es que al presionar un caracter en el textfield me verifique si es valido ese caracter para ese textfield y si lo es que lo escriba en el, pero si no es valido que no lo escriba y que talves me mande un sonido de alerta, esto lo hacia en VB ya que el Formatt en este tambien daba clavos pero en VB si podia verificar y mandaba sonidos de alerta

haber si me pueden ayudar
  #2 (permalink)  
Antiguo 12/02/2010, 10:52
 
Fecha de Ingreso: diciembre-2007
Mensajes: 24
Antigüedad: 17 años
Puntos: 1
Respuesta: Como ocultar un caracter presionado en un TextField

ya probaste con una expresion regular?
  #3 (permalink)  
Antiguo 12/02/2010, 10:56
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Como ocultar un caracter presionado en un TextField

Investiga sobre la interfaz KeyListener, ahi está lo que requieres
__________________
En programación hay mil y un formas de hacer lo mismo...
  #4 (permalink)  
Antiguo 23/02/2010, 10:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como ocultar un caracter presionado en un TextField

Cita:
Iniciado por Solidux Ver Mensaje
ya probaste con una expresion regular?
pues eso es lo que hago actualmente, pero quiero que la verificacion sea en tiempo real, osea en cada tecla que se presione, y si no es correcto el caracter que no lo escriba en el TextField, a diferencia que si lo hago con expresion regular aunque escriba un caracter incorrecto este siempre se escribe en el textfield y luego talves borralo y eso no quiero hacer

Cita:
Iniciado por fradve Ver Mensaje
Investiga sobre la interfaz KeyListener, ahi está lo que requieres
pues buscando encontre esto [URL="http://www.sc.ehu.es/sbweb/fisica/cursoJava/applets/events/edicion.htm"]LINK[/URL] para mi que esto es, aunque habria que estudiarlo bien para que haga lo que quiero

Última edición por jggl_9158; 23/02/2010 a las 10:44
  #5 (permalink)  
Antiguo 25/02/2010, 14:00
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Como ocultar un caracter presionado en un TextField

Hola lo debes hacer en el evento KeyTyped del JTexfield, te dejo unos ejemplos

Ejemplos

Código:
private void txtNombreEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {
        int k=(int)evt.getKeyChar();
        if (k > 47 && k < 58) {
            evt.setKeyChar((char)KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null,"No puede ingresar numeros!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
        }
        if(k==10){
            //Telca enter transfiere el foco
            txtNombreEmpleado.transferFocus();
        }
    }



private void txtTelefonoEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {        int k=(int)evt.getKeyChar();
        if (k >= 97 && k <= 122 || k>=65 && k<=90){
            evt.setKeyChar((char)KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null,"No puede ingresar letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
        }
        if(k==241 || k==209){
            evt.setKeyChar((char)KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null,"No puede ingresar letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
        }
        if(k==10){
            txtTelefonoEmpleado.transferFocus();
        }
    }
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #6 (permalink)  
Antiguo 27/02/2010, 07:13
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 21 años, 3 meses
Puntos: 4
Respuesta: Como ocultar un caracter presionado en un TextField

Hola, esto lo puedes hacer facilmente con una clase llamada Document.

Si te fijas en tu JTextField tienes un metodo llamado setDocument(), si mal no recuerdo la clase document se encuentra en el paquete javax.swing.text

Lo que tienes que hacer es crear una clase extendida de la clase PlainDocument y sobre escribir el metodo abstracto insertString que se ejecuta cada vez que se teclea un caracter sobre el JTextField. Alli en el metodo insertString puedes vaildar el caracter y funciona en tiempo real.

Una vez creada e instanciada tu clase Document solo tienes que decirle al JTextField cual va ser el documento valido que mostrara.

Lastima no puedo postear el codigo fuente, ya que me encuentro conectado desde el telefono celular, pero estoy seguro que si googleas un poco vas a conseguir el codigo al cual hago referencia.

PD: casi todos mis JTextField funcionan asi... Jeje

Saludos..
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #7 (permalink)  
Antiguo 07/04/2010, 11:28
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como ocultar un caracter presionado en un TextField

Cita:
Iniciado por djagu_26 Ver Mensaje
Hola lo debes hacer en el evento KeyTyped del JTexfield, te dejo unos ejemplos

Ejemplos

Código:
private void txtNombreEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {
        int k=(int)evt.getKeyChar();
        if (k > 47 && k < 58) {
            evt.setKeyChar((char)KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null,"No puede ingresar numeros!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
        }
        if(k==10){
            //Telca enter transfiere el foco
            txtNombreEmpleado.transferFocus();
        }
    }



private void txtTelefonoEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {        int k=(int)evt.getKeyChar();
        if (k >= 97 && k <= 122 || k>=65 && k<=90){
            evt.setKeyChar((char)KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null,"No puede ingresar letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
        }
        if(k==241 || k==209){
            evt.setKeyChar((char)KeyEvent.VK_CLEAR);
            JOptionPane.showMessageDialog(null,"No puede ingresar letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
        }
        if(k==10){
            txtTelefonoEmpleado.transferFocus();
        }
    }
creo que tu respuesta es lo que busco, aunque las otras sugerencias no estan nada mal, lo unico que las otras requieren de un mayor entendimiento e implementacion a diferencia de la tuya, vamos a ver cual es mejor al final de cuentas para lo que quiero

gracias por la ayuda

Etiquetas: presionado, textfield, caracteres
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 10:45.