api:documentation:grafik:mausereignisse
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
api:documentation:grafik:mausereignisse [2021/01/06 15:21] – Martin Pabst | api:documentation:grafik:mausereignisse [2023/04/28 10:41] (aktuell) – [Beispiel 4: Drag and Drop] Martin Pabst | ||
---|---|---|---|
Zeile 23: | Zeile 23: | ||
</ | </ | ||
===== Beispiel 1: Überschreiben der onMouseDown-Methode ===== | ===== Beispiel 1: Überschreiben der onMouseDown-Methode ===== | ||
+ | Stelle die Geschwindigkeit auf maximal, starte das Programm und klicke zuerst mit der linken Maustaste, dann mit der rechten Maustaste auf die Quadrate! | ||
< | < | ||
<div class=" | <div class=" | ||
Zeile 57: | Zeile 58: | ||
- | ===== Beispiel 2: Dreien | + | ===== Beispiel 2: Drehen |
+ | Stelle die Programmgeschwindigkeit auf maximal, starte das Programm und drücke die Tasten r oder l. Probiere auch aus, was passiert, wenn Du die Tasten für längere Zeit hältst! | ||
+ | \\ | ||
+ | Falls das Programm nicht reagiert, hat vielleicht irgendein anderes Control im Browser den Tastaturfokus. Klicke in diesem Fall einfach einmal mit der Maus in den Grafikbereich, | ||
< | < | ||
<div class=" | <div class=" | ||
<script type=" | <script type=" | ||
- | // Stelle die Programmgeschwindigkeit auf maximal, starte das Programm und drücke | ||
- | // die Tasten r oder l. Probiere auch aus, was passiert, wenn Du die Tasten für längere Zeit hältst! | ||
- | // | ||
- | // Fall das Programm nicht reagiert, hat vielleicht irgendein anderes Control im Browser den | ||
- | // Tastaturfokus. Klicke in diesem Fall einfach einmal mit der Maus in den Grafikbereich, | ||
- | // den Tastaturfokus erhält. | ||
new World(1000, 1000); | new World(1000, 1000); | ||
new Zeiger(); | new Zeiger(); | ||
Zeile 92: | Zeile 90: | ||
===== Beispiel 3: Überschreiben der onMouseEnter/ | ===== Beispiel 3: Überschreiben der onMouseEnter/ | ||
+ | Setze die Geschwindigkeit auf maximal, starte das Programm und fahre mit der Maus über die Quadrate! | ||
< | < | ||
<div class=" | <div class=" | ||
Zeile 99: | Zeile 98: | ||
for(int i = 0; i < 10; i++) { | for(int i = 0; i < 10; i++) { | ||
| | ||
- | new ClickQuadrat(100 * i + 10, 100 * j + 10, 80); | + | new MouseOverQuadrat(100 * i + 10, 100 * j + 10, 80); |
} | } | ||
} | } | ||
Zeile 105: | Zeile 104: | ||
while(true){ } | while(true){ } | ||
- | class ClickQuadrat | + | class MouseOverQuadrat |
- | ClickQuadrat(double x, double y, double breite) { | + | MouseOverQuadrat(double x, double y, double breite) { |
super(x, y, breite, breite); | super(x, y, breite, breite); | ||
setFillColor(Color.white); | setFillColor(Color.white); | ||
} | } | ||
- | | + | |
- | if(key == 0) { | + | |
| | ||
- | | + | |
+ | } | ||
+ | |||
+ | | ||
| | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Beispiel 4: Drag and Drop ===== | ||
+ | Durch geschickte Nutzung der obigen Handler lässt sich Drag and Drop per Maus verwirklichen: | ||
+ | |||
+ | < | ||
+ | <div class=" | ||
+ | <script type=" | ||
+ | println(" | ||
+ | new DraggableRectangle(100, | ||
+ | |||
+ | |||
+ | class DraggableRectangle extends Rectangle { | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | | ||
+ | if(state == " | ||
+ | | ||
+ | | ||
+ | state = " | ||
+ | | ||
+ | | ||
} | } | ||
+ | |||
+ | | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(state != " | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(state != " | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(state == " | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | | ||
+ | state = " | ||
+ | stopTrackingEveryMouseMovement(); | ||
+ | getWorld().setCursor(" | ||
} | } | ||
api/documentation/grafik/mausereignisse.1609942884.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)