A
Alex L
Gast
Hallo Leute!
Ich habe ein Problem mit den Key-events in Java.
In meiner Klasse habe ich einen KeyListener implementiert und in den Methoden KeyPressed und KeyReleased festgelegt, dass die Events ausgeben sollen, welche Taste gedrückt bzw. losgelassen wurde.
Zusätzlich soll aber das KeyReleased-event nur EINMAL (!) ausgelöst werden.
Der Code:
Ein System.out.println(…) ergibt folgendes:
»Key x pressed!
Key x released!
Key x pressed!
Key x released!
Key x pressed!
Key x released!
« … usw.
Da ich Linux benutzte (genauer Ubuntu 10.04) weiß ich, dass es am Bug #5011907 liegt.
Doch vielleicht hat ja einer von euch eine Idee, die mich retten könnte ;D
Vielen Dank schonmal im vorraus
und viele Grüße,
Alex
Ich habe ein Problem mit den Key-events in Java.
In meiner Klasse habe ich einen KeyListener implementiert und in den Methoden KeyPressed und KeyReleased festgelegt, dass die Events ausgeben sollen, welche Taste gedrückt bzw. losgelassen wurde.
Zusätzlich soll aber das KeyReleased-event nur EINMAL (!) ausgelöst werden.
Der Code:
Java:
import java.awt.event.*;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class IsTheKeyEventWorking extends JPanel implements KeyListener {
boolean keyDown;
public static void main(String[] args) {
new IsTheKeyEventWorking(100, 200);
}
public IsTheKeyEventWorking(int w, int h) {
this.setPreferredSize(new Dimension(w, h));
JFrame frame = new JFrame("POKéMON");
frame.setLocation(100, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addKeyListener(this);
frame.add(this);
frame.pack();
frame.setVisible(true);
frame.setResizable(false);
}
public void keyPressed(KeyEvent e) {
if(!keyDown) {
System.out.println("Key pressed!");
}
keyDown = true;
}
public void keyReleased(final KeyEvent e) {
System.out.println("Key released!");
keyDown = false;
}
public void keyTyped(KeyEvent e) {
}
}
Ein System.out.println(…) ergibt folgendes:
»Key x pressed!
Key x released!
Key x pressed!
Key x released!
Key x pressed!
Key x released!
« … usw.
Da ich Linux benutzte (genauer Ubuntu 10.04) weiß ich, dass es am Bug #5011907 liegt.
Doch vielleicht hat ja einer von euch eine Idee, die mich retten könnte ;D
Vielen Dank schonmal im vorraus
und viele Grüße,
Alex