Bienvenido(a), Visitante. Favor de ingresar o registrarse.
Noviembre 20, 2008, 11:52:26
Inicio Ayuda Buscar Ingresar Registrarse
Noticias: Foro de Java, C++ y más.

Empieza una nueva comunidad de programación: Oneble ... es lo que tu quieras que sea

+  Foros Java y C/Linux
|-+  Programación
| |-+  Java J2SE
| | |-+  Duda con KeyEvent
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: Duda con KeyEvent  (Leído 73 veces)
laura_morgar
Full Member
***
Mensajes: 100


Ver Perfil Email


« en: Agosto 26, 2008, 02:29:21 »

Hola a todos, lo que pretendo es lo siguiente:

Tengo una pantalla en la que muestro una tabla. Algunas de estas columnas son números (con decimales). Mi intención es que cuando se pulse la tecla "." del teclado numérico, en lugar de poner un "." ponga una "," (al igual que lo hacen las hojas de cálculo). Mi duda es cómo hacerlo???

Lo que se me había ocurrido era capturar el evento de pulsar la tecla "." y generar 2 (programáticamente) que sean "pulsar en la tecla retroceso" y "pulsar la tecla ,". Pero según lo he hecho no me funciona (os añado el código que tengo).

Código:
public void keyPressed(KeyEvent ke){
        if(ke.getKeyCode() == KeyEvent.VK_DECIMAL){
            try{
                new KeyEvent(tablaGastos,KeyEvent.KEY_PRESSED,ke.getWhen(),KeyEvent.ALT_MASK,8,KeyEvent.CHAR_UNDEFINED).consume();
                new KeyEvent(tablaGastos,KeyEvent.KEY_PRESSED,ke.getWhen(),0,44,',').consume();
            }catch(Exception e){System.out.println("\n\n"+e.getMessage());}
        }
       
    }

El método consume() no sé si está bien puesto ahí o no pero lo he probado con él y sin él y el resultado es el mismo.

¿¿Alguien me podría decir qué hago mal o cómo podría hacer lo que pretendo??

Muchísimas gracias de antemano y un saludo.
En línea
ChusterBoy
Newbie
*
Mensajes: 46



Ver Perfil Email
« Respuesta #1 en: Agosto 26, 2008, 06:14:30 »

Ps se oye sencillo pero en la practica, ehm esta un poco mas complejo, no se, ami se me puede ocurrir que lo que hagas es que cuando se presione la tecla "." programes un evento en el que se extraiga todo el contenido, hagas un borrado de lo que se escribio hasta antes de que se presionara la tecla "." despues concatenes lo que extrajiste con una "," y lo mandes eso a su respectivo lugar, eso haria el efecto de que cuando presiones la tecla "." te aparezca ",", esa seria mi idea, a lo mejor en lo practico tengas mas problemas, te aconsejaria que lo intentaras que al cabo no es tan complicado y despues  cheques cuales serian los errores que provocaria el hacer esto....Comenta....
En línea

╠ Жд∂ع Ђ¥ ™ ╣:

(¯`·._.·×º°”˜`”°º
osvaldogh85
Newbie
*
Mensajes: 24


Ver Perfil Email
« Respuesta #2 en: Agosto 28, 2008, 10:38:21 »

yo tomaria la cadena y cuando esta completa al presionar Enter
hago un replace dentro de la cadena de . por una usando los metodos
se Strings que provee java
En línea
laura_morgar
Full Member
***
Mensajes: 100


Ver Perfil Email
« Respuesta #3 en: Agosto 29, 2008, 07:11:34 »

Hola osvaldogh85:

La verdad es que así es como lo tengo ahora mismo. Lo que pasa es que así no me vale muy bien porque cada vez que edito la celda de nuevo tengo que quitarle la "," para que me coja bien el número (porque le pongo también el "." para separar miles)
Había pensado en que cuando se edite la celda quitarle el "." separador de miles pero creo que no hay ningún método que se lance cuando se edite ¿Esto es cierto o por el contrario existe algún método que me valga??

Gracias de todas formas.
En línea
Páginas: [1] Enviar tema Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!