entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Evento key released en java. ¿Como?

Tengo la variable v
Quiero que al pulsar la flecha de hacia arriba v=v+10;
Vamos, que cada vez que pulsas arriba se sume 10 a v
Yo antes sabía hacerlo pero se me ha olvidado xD
Decidme si tengo que hacer algun import, estoy usando netbeans.

1 Respuesta

2votos

FelipeMedel Puntos7400

Lo primero es tener en cuenta algunas cosas,

int codigo = evt.getKeyCode(); 
char caracter = evt.getKeyChar(); 

Con el primer método... obtengo el código numérico que representa el carácter introducido. Con el segundo, obtengo lo que es el carácter en sí. Son independientes y no tienes que usar los dos, pero cada uno te será más útil en una u otra situación.
Por ejemplo... para comparar si es una 'a' o 'A' lo que se ha tecleado, como es normal, utilizaras getKeyChar(). Pero para saber si has pulsado la tecla Up, debes usar el getKeyCode(), quizas sea una de las maneras mas cómodas de usarlo.

Hay una serie de constantes que te ayudarán a saber qué tecla se ha pulsado. Éstas están en la clase KeyEvent. Para comprobar si han tecleado la fecha arriba o Up, lo haces de la siguiente forma:

if (codigo == KeyEvent.VK_UP){
    System.out.println("presionaste la tecla up");
}

en ese orden de ideas, te dejo un ejemplo con ambos:

private void formKeyReleased(java.awt.event.KeyEvent evt) {                                 
        //obtengo el codigo de la tecla que se presiono
        int codigo = evt.getKeyCode();
        //obtengo el caracter de la tecla que se presiono
        char caracter = evt.getKeyChar();
        //en este caso ya se que el codigo es 38, asi que valido
        //si el codigo de la tecla es 38 entonces sume 10 a "V"
        if(codigo == 38){
            v += 10;
            System.out.println("valor v = " + v);
        }
        //valido si el codigo es el mismo que corresponde a la 
        //tecla "UP" entonces sumele 10 a "V"
        if(codigo == KeyEvent.VK_UP){
            v += 10;
            System.out.println("valor v = " + v);
        }  
    } 

en este ejemplo agregue las dos validaciones, así que utiliza solo 1, si usas ambas le sumarias de a 20 por cada vez que presiones la tecla "UP"

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta