Here is an example of both multiple key press and repeat delay ignore. It is a terrible example of animation. Do not us this animation loop in a game. It will flicker far too much.import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JFrame implements Runnable {
boolean upPressed=false, downPressed=false, leftPressed=false, rightPressed=false;
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent ke) {
switch (ke.getKeyCode()) {
case KeyEvent.VK_UP: upPressed = true; break;
case KeyEvent.VK_DOWN: downPressed = true; break;
case KeyEvent.VK_LEFT: leftPressed = true; break;
case KeyEvent.VK_RIGHT: rightPressed = true; break;
}
}
public void keyReleased(KeyEvent ke) {
switch (ke.getKeyCode()) {
case KeyEvent.VK_UP: upPressed = false; break;
case KeyEvent.VK_DOWN: downPressed = false; break;
case KeyEvent.VK_LEFT: leftPressed = false; break;
case KeyEvent.VK_RIGHT: rightPressed = false; break;
}
}
});
setSize(250,250);
setVisible(true);
Thread timer = new Thread(this);
timer.start();
}
public static void main(String[] args) {
new Test();
}
public void run() {
while (true) {
repaint();
try { Thread.sleep(30);} catch (Exception e) {}
}
}
public void paint(Graphics g) {
g.setColor(Color.white);
g.fillRect(0,0,getWidth(), getHeight());
g.setColor(Color.black);
g.drawString("Up",40,40);
if (upPressed) g.drawString("Pressed",100,40);
g.drawString("Down",40,60);
if (downPressed) g.drawString("Pressed",100,60);
g.drawString("Left",40,80);
if (leftPressed) g.drawString("Pressed",100,80);
g.drawString("Right",40,100);
if (rightPressed) g.drawString("Pressed",100,100);
}
}