H
HellYeah
Gast
Hallo @all,
ist es normal, das der Keylistener erst einmal auf einen Tastendruck reagiert, dann einen moment wartet nud dann dauerhaft schnell ausgeführt wird ?
Habe in meinem Beispiel einen roten Punkt, der sich gleichmäßig bewegen soll.
Wenn ich jetzt eine Taste drücke, wird sie einmal durchlaufen, unterbricht dann kurz und wird dann sehr schnell hintereinander abgefragt. Der Punkt "springt" einmal kurz, wartet und geht dann in eine fließende Bewegungüber.
Wie kriege ich es hin, das der Punkt sich von anfang an gleichmäßig bewegt ?
ist es normal, das der Keylistener erst einmal auf einen Tastendruck reagiert, dann einen moment wartet nud dann dauerhaft schnell ausgeführt wird ?
Habe in meinem Beispiel einen roten Punkt, der sich gleichmäßig bewegen soll.
Wenn ich jetzt eine Taste drücke, wird sie einmal durchlaufen, unterbricht dann kurz und wird dann sehr schnell hintereinander abgefragt. Der Punkt "springt" einmal kurz, wartet und geht dann in eine fließende Bewegungüber.
Wie kriege ich es hin, das der Punkt sich von anfang an gleichmäßig bewegt ?
Code:
public static void main (String [] args) {
Speed = 10 ;
Bilder_Ordner = "bin" ;
Display display = new Display ();
Shell shell = new Shell(display);
shell.setText("erster TEST") ;
shell.setSize(500,500) ;
//ImageData ideaData = new ImageData( "/"+Bilder_Ordner+"/char.bmp") ;
ImageData ideaData = new ImageData( Snippet1.class.getClass().getResourceAsStream("/"+Bilder_Ordner+"/char.bmp"));
int whitePixel = ideaData.palette.getPixel(new RGB(255,0,255));
ideaData.transparentPixel = whitePixel;
Image transparentIdeaImage = new Image(display,ideaData);
label = new Label( shell , SWT.CENTER ) ;
label.setText("HALLE") ;
label.setBounds(10,10,100,100) ;
label.setImage( transparentIdeaImage ) ;
shell.open ();
shell.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
System.out.println("Key " + e.keyCode + " hit.");
switch ( e.keyCode ) {
case 97 :
label.setLocation(label.getLocation().x-Speed , label.getLocation().y) ;
break ;
case 100 :
label.setLocation(label.getLocation().x+Speed , label.getLocation().y) ;
break ;
case 115 :
label.setLocation(label.getLocation().x , label.getLocation().y+Speed) ;
break ;
case 119 :
label.setLocation(label.getLocation().x , label.getLocation().y-Speed) ;
break ;
}
}
public void keyReleased(KeyEvent e) {
}
});
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}