Java - Taste gedrückt halten?

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

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
xJesus 
Fragesteller
 10.08.2020, 12:19

Hab ich schon.
Und weiter?
Wie schaff ich das mit der Klasse?

robot.keyPress(KeyEvent.VK_M);
= 1x drücken

0
MrAmazing2  10.08.2020, 12:22
@xJesus

„= 1x drücken“?

Normal drückt .keyPress doch pausenlos, bis man .keyRelease macht?

0
xJesus 
Fragesteller
 10.08.2020, 12:39
@MrAmazing2
Normal drückt .keyPress doch pausenlos, bis man .keyRelease macht?

Also bei mir wird es mit .keyPress nur 1x gedrückt.

0
MrAmazing2  10.08.2020, 12:50
@xJesus

1x kurz oder 1x dauerhaft? :D

Weil 1x passt ja. Wenns dauerhaft is.

0

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.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.

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;
     }


   }   
}