Primeiro vamos criar uma janela para exibição dos elementos, da forma mais eficiente possível, como mostra esse vídeo:
depois disso, dentro do construtor adiciona KeyListener apenas com evento keyPressed:
this.addkeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
// tratamento
}
});
agora vamos analisar se ele apertou teclas das setas, assim:
switch(e.getKeyChar()){
case KeyEvent.VK_UP:
case KeyEvent.VK_RIGHT:
case KeyEvent.VK_LEFT:
case KeyEvent.VK_DOWN:
}
e vamos adicionar o elemento que será controlado pelas setas: um quadradinho:
JPanel p = new JPanel():
p.setSize(10,10);
p.setLocation(new Point(1,1)):
add(p);
e agora é so implementar movimento com setBounds( x, y, width, height):
switch(e.getKeyChar()){
case KeyEvent.VK_UP:
p.setBounds(p.getX(),p.getY()-10,10,10);
break;
case KeyEvent.VK_RIGHT:
p.setBounds(p.getX()+10,p.getY(),10,10);
break;
case KeyEvent.VK_LEFT:
p.setBounds(p.getX()-10,p.getY(),10,10);
break;
case KeyEvent.VK_DOWN:
p.setBounds(p.getX(),p.getY()+10,10,10);
break;
}
Pronto. Rode o programa, e ao apertar setas o pontinho quadrado irá se mover na tela. Mas se voce estiver no final da janela ou no começo, e andar mais, irá sair fora da janela. Agora um desafio a você: implementar isso.
~ass: g;