KeyListener

5 respostas
victor_machado1
quando eu uso um keylistener, como é que eu faço pra saber se uma determinada tecla foi pressionada? eu fiz isso aqui:
janela.addKeyListener(new KeyListener(){

            public void keyTyped(KeyEvent e) {
                FazerMovimento(e);
            }

            public void keyPressed(KeyEvent e) {

            }

            public void keyReleased(KeyEvent e) {
            }
        });
private void FazerMovimento(KeyEvent e){
            if(e.getKeyCode()== KeyEvent.VK_RIGHT){
                x+=10;
                quadro.setLocation(x,y);
            }
    }

janela é um java.awt.Frame e o quadro é um java.awt.Canvas

acho que o problema está no getKeyCode() porque sem aquilo qualquer tecla funciona.

5 Respostas

W

O seu getKeyCode()== KeyEvent.VK_RIGHT esta falando que ele só vai funcionar quando vc apertar a tecla RIGHT(seta para direita) ^^

H

Isso é apenas um adendo na sua dúvida
http://emdia.wordpress.com/2008/11/06/jcombobox-listener/

victor_machado1

Então, é exatamente isso que eu quero. Mas não é isso que acontece. E isso acontece com todas as teclas que eu defino. E quando eu tiro esse if, o Canvas se movimenta pra direita com qualquer tecla, exceto com as direcionais. Você sabe porque?

M

Ou seja, para eventos keyTyped, o valor é sempre indefinido. A solução é simplesmente mover o código que está dentro do método keyTyped para dentro do método keyPressed.

victor_machado1

Ae deu certo. Valeu mesmo.

Criado 18 de junho de 2009
Ultima resposta 18 de jun. de 2009
Respostas 5
Participantes 4