Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:grafik:mausereignisse

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
api:documentation:grafik:mausereignisse [2021/12/29 11:29] – Externe Bearbeitung 127.0.0.1api:documentation:grafik:mausereignisse [2023/04/28 10:41] (aktuell) – [Beispiel 4: Drag and Drop] Martin Pabst
Zeile 120: Zeile 120:
          getWorld().setCursor("default");          // Setzt die Form des Mauszeigers wieder auf "default" ( = Pfeil) zurück.          getWorld().setCursor("default");          // Setzt die Form des Mauszeigers wieder auf "default" ( = Pfeil) zurück.
    }    }
 +}
 +</script>
 +</div>
 +</HTML>
 +
 +===== Beispiel 4: Drag and Drop =====
 +Durch geschickte Nutzung der obigen Handler lässt sich Drag and Drop per Maus verwirklichen:
 +
 +<HTML>
 +<div class="java-online" style="height: 500px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'dragAndDrop1'}">
 +<script type="text/plain" title="onMouseEnterLeave.java">
 +println("Packen Sie das Rechteck mit der Maus und ziehen Sie es woanders hin!");
 +new DraggableRectangle(100, 100, 50, 50);
 +
 +
 +class DraggableRectangle extends Rectangle {
 +
 +   String state = "idle";    // "idle", "dragging"
 +   double lastMouseX;
 +   double lastMouseY;
 +
 +
 +
 +   public void onMouseDown(double x, double y, int key) {
 +      if(state == "idle") {
 +         lastMouseX = x;
 +         lastMouseY = y;
 +         state = "dragging"; 
 +         startTrackingEveryMouseMovement();
 +         getWorld().setCursor("grabbing");
 +      }
 +
 +      
 +   }
 +
 +   public void onMouseEnter(double x, double y) {
 +      if(state != "dragging") {
 +         getWorld().setCursor("pointer");
 +      }
 +   }
 +
 +   public void onMouseLeave(double x, double y) {
 +      if(state != "dragging") {
 +         getWorld().setCursor("default");
 +      }
 +   }
 +
 +   public void onMouseMove(double x, double y) {
 +      if(state == "dragging") {
 +         move(x - lastMouseX, y - lastMouseY);
 +         lastMouseX = x;
 +         lastMouseY = y;
 +      }
 +   }
 +
 +   public void onMouseUp(double x, double y, int key) {
 +      state = "idle";
 +      stopTrackingEveryMouseMovement();
 +      getWorld().setCursor("pointer");
 +   }
 +
 } }
 </script> </script>
api/documentation/grafik/mausereignisse.1640773795.txt.gz · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki