G
Guest
Gast
Hallo,
der folgende Code sammelt leider alle Tastatureingaben in einer Warteschlange, und arbeitet alle Eingaben ab, wobei für JEDE Eingabe die KOMPLETTE zeitaufwendige Schleife ausgeführt wird!!!
Ziel: Wenn eine Tastatureingabe gemacht wird, dann soll die Schleife für die vorherige Tastatureingabe NICHT mehr zuende abgearbeitet werden. Die Schleife soll dann nur für die aktuelle Tastatureingabe neu ausgeführt werden.
der folgende Code sammelt leider alle Tastatureingaben in einer Warteschlange, und arbeitet alle Eingaben ab, wobei für JEDE Eingabe die KOMPLETTE zeitaufwendige Schleife ausgeführt wird!!!
Ziel: Wenn eine Tastatureingabe gemacht wird, dann soll die Schleife für die vorherige Tastatureingabe NICHT mehr zuende abgearbeitet werden. Die Schleife soll dann nur für die aktuelle Tastatureingabe neu ausgeführt werden.
Code:
public class GUI extends JFrame {
static GUI fenster;
...
public static void main(String args[]) {
fenster = new GUI();
...
}
class KeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e) {
if( e.getKeyCode() == KeyEvent.VK_LEFT )
{
left=true;
fenster.repaint(); //Problem: die zeitaufwendige Schleife unten um Code wird komplett abgearbeitet,
//erst danach werden die nächsten Keyinputs abgearbeitet!
}
...
}
}
class BildLeinwand extends JPanel {
public void paintComponent(Graphics g) {
...
for (int x=0; x<9999999; x++) { //Hier eine zeitaufwendige Schleife! }
}
}
GUI() {
...
addKeyListener(new KeyListener());
}
}