Java - Taste gedrückt halten?
Ich habe ein kleines Programm geschrieben, wenn ich die Taste P drücke wird ein boolean auf true gesetzt.
Wenn der boolean auf true ist, soll pausenlos die Taste Z gedrückt werden.
Wie programmier ich das?
PS: Mit Eclipse
3 Antworten
Dazu solltest du dir mal die Robot Klasse anschauen. (java.awt.Robot)
Die benutzt man nämlich, um einen Key-Press zu simulieren.
Hier die Doku: https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html
Normal drückt .keyPress doch pausenlos, bis man .keyRelease macht?
Also bei mir wird es mit .keyPress nur 1x gedrückt.
Die anderen haben schon ganz gute Antworten gegeben, aber eine Sache, die ich immer wieder sehe: Eclipse ist lediglich ein Editor. Mit dem Code hat Eclipse überhaupt nicht zu tun.
Du musst eine boolean haben. Z.B. pressed.
Dann brauchst du einen Scanner, der scannt, ob du P drückst. Mit ner If-Abfrage kannst du dann abfragen, ob das passiert ist. Wenn du sie drückst, dann folgt eine weitere If-Abfrage, in der dann überprüft wird, ob pressed true oder false ist, und dann wird der Wert halt auch gewechselt.
Und du brauchst eine While Schleife. Diese ist so aufgebaut, dass während pressed true ist, Z down ist.
Du musst nur mal googlen, wie man Tasten mithilfe von Java drückt und wie man Tastenanschläge erkennt.
Mein Versuch, wobei ich lang nicht mehr in Java programmiert hab. Sind also vermutlich Fehler drin.
public class Main {
public static void main(String[] args) {
boolean pressed = false;
if(button press P detecten) {
if(pressed == false) {
pressed = true;
}
if(pressed == true) {
pressed = false;
}
}
while(pressed) {
z down;
}
}
}
Hab ich schon.
Und weiter?
Wie schaff ich das mit der Klasse?
robot.keyPress(KeyEvent.VK_M);
= 1x drücken