Java SquareEvent square movement
Eu tenho um pedaço de código em que um KeyEvent é acionado quando qualquer uma das teclas de seta são pressionadas. Isso, por sua vez, faz com que um quadrado se mova pela tela.
Agora notei que quando pressiono e mantenho a tecla, o quadrado se move, mas o tempo após o movimento inicial para os movimentos subseqüentes é bastante longo, se você entender o que quero dizer? Como eu iria diminuir desta vez?
Obrigado!
import java.awt.*;
import javax.swing.*;
import squarequest.sprites.*;
import java.awt.event.*;
public class GamePanel extends JPanel{
private final int HEIGHT = 400;
private final int WIDTH = 600;
private Square square;
private Circle circle;
public GamePanel(){
addKeyListener(new DirectionListener());
setBackground (Color.white);
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setFocusable(true);
square = new Square();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
square.display(g);
}
public class DirectionListener implements KeyListener{
@Override
public void keyReleased(KeyEvent event) {}
@Override
public void keyTyped(KeyEvent event) {}
@Override
public void keyPressed(KeyEvent event) {
switch(event.getKeyCode()){
case KeyEvent.VK_UP:
square.moveUp();
break;
case KeyEvent.VK_DOWN:
square.moveDown();
break;
case KeyEvent.VK_LEFT:
square.moveLeft();
break;
case KeyEvent.VK_RIGHT:
square.moveRight();
break;
}
repaint();
}
}
}