I want to receive standard desktop keyboard behaviour (one key press = one event and after a while repeated ones, as configured by OS).
public class Game extends Applet implements Runnable {
int mouseX,mouseY,mouseButton,lastMouseButton,isMouseButtonClicked;
boolean KEY[]=new boolean[32767];
int KEYTYPED;
public void start() {
enableEvents(AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK);
new Thread(this).start();
}
public void processEvent(AWTEvent e){
switch (e.getID())
{
case KeyEvent.KEY_TYPED:
KEYTYPED=((KeyEvent) e).getKeyCode();
System.out.println("keyTyped "+((KeyEvent) e).getKeyCode());
break;
case KeyEvent.KEY_PRESSED:
KEY[((KeyEvent) e).getKeyCode()]=true;
System.out.println("keyRaw "+((KeyEvent) e).getKeyCode());
break;
case KeyEvent.KEY_RELEASED:
KEY[((KeyEvent) e).getKeyCode()]=false;
break;
case MouseEvent.MOUSE_PRESSED:
mouseButton=((MouseEvent) e).getButton();
break;
case MouseEvent.MOUSE_RELEASED:
mouseButton=0;
break;
case MouseEvent.MOUSE_MOVED:
case MouseEvent.MOUSE_DRAGGED:
mouseX=((MouseEvent) e).getX();
mouseY=((MouseEvent) e).getY();
break;
}
}
KeyEvent.KEY_TYPED always shows 0. Also, it is not reacting to cursor keys at all (when other keys are pressed at least it reports 0).