Java KeyEvent Quadrat Bewegung

Ich habe einen Code, in dem ein KeyEvent ausgelöst wird, wenn eine der Pfeiltasten gedrückt wird. Dies wiederum bewirkt, dass sich ein Quadrat über den Bildschirm bewegt.

Jetzt ist mir aufgefallen, dass sich das Quadrat bewegt, wenn ich die Taste drücke und halte, aber die Zeit nach der ersten Bewegung bis zu den nachfolgenden Bewegungen ist ziemlich lang, wenn Sie verstehen, was ich meine? Wie würde ich diese Zeit verkürzen?

Vielen Dank!

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();

        }
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage