Class Zeichenmaschine
- Direct Known Subclasses:
Brettmaschine,Spielemaschine
Projekte der Zeichenmaschine sollten als Unterklasse implementiert werden. Die Klasse übernimmt die Initialisierung eines Programmfensters und der nötigen Komponenten.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static ColorLayerEbene mit der Hintergrundfarbe.protected ZeichenleinwandDie Leinwand, auf die alles gezeichnet wird.protected booleanOb der Mauszeiger derzeit sichtbar ist (bzw. sein sollte).protected static DrawingLayerZeichenebeneprotected ZeichenfensterDas Zeichenfenster der Zeichenmaschinestatic final ObjectGlobaler Monitor, der einmal pro Frame vom Zeichenthread freigegeben wird.static final booleanGibt an, ob die Zeichenmaschine aus BlueJ heraus gestartet wurde.protected static ShapesLayerFormenebeneFields inherited from class schule.ngb.zm.Constants
APP_NAME, APP_VERSION, APP_VERSION_MAJ, APP_VERSION_MIN, APP_VERSION_REV, ARROW, BEVEL, BLACK, BLUE, BOLD, BROWN, canvasHeight, canvasWidth, CENTER, CLOSED, cmouseX, cmouseY, CROSS, CYAN, DARKGRAY, DASHED, DEFAULT_ANIM_RUNTIME, DEFAULT_BACKGROUND, DEFAULT_BUFFER, DEFAULT_EASING, DEFAULT_FILLCOLOR, DEFAULT_FONTSIZE, DEFAULT_FPS, DEFAULT_HEIGHT, DEFAULT_STROKECOLOR, DEFAULT_STROKEWEIGHT, DEFAULT_WIDTH, delta, DOTTED, DOWN, DOWNLEFT, DOWNRIGHT, EAST, FILLED, framesPerSecond, GRAY, GREEN, HALF_PI, HAND, ITALIC, key, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_A, KEY_ALT, KEY_B, KEY_BACK_SPACE, KEY_C, KEY_CANCEL, KEY_CAPS_LOCK, KEY_CLEAR, KEY_COMMA, KEY_CONTROL, KEY_D, KEY_DOWN, KEY_E, KEY_END, KEY_ENTER, KEY_EQUALS, KEY_ESCAPE, KEY_F, KEY_G, KEY_H, KEY_HOME, KEY_I, KEY_J, KEY_K, KEY_L, KEY_LEFT, KEY_M, KEY_MINUS, KEY_N, KEY_O, KEY_P, KEY_PAGE_DOWN, KEY_PAGE_UP, KEY_PAUSE, KEY_PERIOD, KEY_Q, KEY_R, KEY_RIGHT, KEY_S, KEY_SEMICOLON, KEY_SHIFT, KEY_SLASH, KEY_SPACE, KEY_T, KEY_TAB, KEY_U, KEY_UP, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, keyCode, keyEvent, keyPressed, LEFT, LIGHTGRAY, LINES, LINUX, MACOS, MAGENTA, MIDDLE, MITER, MOUSE1, MOUSE2, MOUSE3, mouseButton, mouseEvent, mousePressed, mouseX, mouseY, MOVE, NOMOUSE, NORTH, NORTHEAST, NORTHWEST, OPEN, ORANGE, PI, PIE, PINK, PLAIN, pmouseX, pmouseY, PURPLE, QUARTER_PI, RED, RIGHT, ROUND, runtime, screenHeight, screenWidth, SOLID, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, tick, TWO_PI, UP, UPLEFT, UPRIGHT, WAIT, WEST, WHITE, WINDOWS, YELLOW -
Constructor Summary
ConstructorsConstructorDescriptionErstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Zeichenmaschine(boolean run_once) Erstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Zeichenmaschine(int width, int height, String title) Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Zeichenmaschine(int width, int height, String title, boolean run_once) Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Zeichenmaschine(String title) Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe.Zeichenmaschine(String title, boolean run_once) Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe. -
Method Summary
Modifier and TypeMethodDescriptionfinal voidFügt derZeichenleinwandeine weitereEbenehinzu.final voidZentriert das Zeichenfenster auf dem aktuellen Bildschirm.final voiddelay(int ms) Pausiert die Schleife der Zeichenmaschine für die angegebene Anzahl an Millisekunden.voiddraw()draw()wird einmal pro Frame aufgerufen.final voidexit()Beendet die Zeichenmaschine vollständig.final voidexitNow()voidfinal ColorLayerGibt dieEbenemit der Hintergrundfarbe zurück.final ZeichenleinwandGibt die Zeichenleinwand zurück.final DrawingLayerGibt die Standard-Zeichenebenezurück.final intGibt die aktuellen Frames pro Sekunde zurück.final intDie Höhe derZeichenleinwand.final BufferedImagegetImage()Erstellt aus dem aktuellen Inhalt derZeichenleinwandein neuesBufferedImage.final LayergetLayer(int index) Gibt dieEbeneam angegebenen Index zurück.final <LT extends Layer>
LTGibt die erste (unterste)Ebeneder angegebenen Klasse zurück.final intGibt die Anzahl derEbenenin derZeichenleinwandzurück.final ShapesLayerGibt die Standard-Formenebenezurück.getState()Gibt den aktuellenZustandder Zeichenmaschine zurück.final intgetWidth()Die Breite derZeichenleinwand.final voidhide()Versteckt das Zeichenfenster.final voidMacht den Mauszeiger unsichtbar.booleanPrüft, ob das Zeichenfenster im Vollbild läuft.final booleanisPaused()Prüft, ob die Zeichenmaschine gerade pausiert ist.final booleanfinal booleanvoidvoidvoidvoidvoidkeyTyped()voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidfinal voidpause()Pausiert die Ausführung vonupdate(double)unddraw()nach dem nächsten vollständigen Frame.final voidquit()Beendet das Programm vollständig.final voidquit(boolean exit) Beendet das Programm.final voidredraw()Zeichnet dieZeichenleinwandneu und zeigt den aktuellen Inhalt im Zeichenfenster an.final voidrender()Zeigt den aktuellen Inhalt derZeichenleinwandim Zeichenfenster an, ohne vorherdraw()aufzurufen.final voidresume()Setzt die Ausführung der Zeichenmaschine fort, nachdem diese mitpause()pausiert wurde.final voidSpeichert den aktuellen Inhalt derZeichenleinwandin einer Bilddatei auf der Festplatte.final voidSpeichert den aktuellen Inhalt derZeichenleinwandin einer Bilddatei im angegebenen Dateipfad auf der Festplatte.voidscheduleTask(Runnable runnable, int delay) voidscheduleTask(Runnable runnable, int delay, boolean concurrent) final voidsetCursor(int pPredefinedCursor) Setzt den Mauszeiger auf eines der vordefinierten Symbole.final voidSetzt den Mauszeiger auf das übergebenen Cursor-Objekt.final voidÄndert den Mauszeiger auf ein eigenes Bild.final voidsetFramesPerSecond(int pFramesPerSecond) Setzt die Anzahl an Frames pro Sekunde auf einen neuen Wert.final voidsetFullscreen(boolean pEnable) Aktiviert oder deaktiviert den Vollbildmodus für die Zeichenmaschine.final voidsetSize(int width, int height) Ändert die Größe derZeichenleinwand.voidsettings()Die Settings werden einmal beim Erstellten der Zeichenmaschine aufgerufen.final voidSetzt den Titel des Zeichenfensters.voidsetup()Methode, die von Unterklassen überschrieben werden sollte, um die Zeichenmaschine vor dem Start zu konfigurieren.final voidshow()Zeigt das Zeichenfenster an.final voidZeigt den Mauszeiger wieder an, falls er zuvorverstecktwurde.voidshutdown()teardown()wird aufgerufen, sobald die Schleife des Hauptprogramms beendet wurde.final ImageLayersnapshot()Erstellt eine Momentaufnahme des aktuellen Inhalts derZeichenleinwandund erstellt daraus eineBildebene.final voidstop()Stoppt die Zeichenmaschine.voidupdate(double delta) update()wird einmal pro Frame vordraw()aufgerufen, um notwendige Aktualisierungen vorzunehmen.Methods inherited from class schule.ngb.zm.Constants
abs, arccos, arcsin, arctan, asBool, asBool, asBool, asBool, asBool, asBool, asBool, asBool, asBool, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asDouble, asInt, asInt, asInt, asInt, asInt, asInt, asInt, asInt, asInt, avg, binary, ceil, choice, choice, choice, choice, color, color, color, color, colorHsb, colorHsl, cos, degrees, distance, floor, fromBinary, fromHex, getRandom, hex, interpolate, limit, limit, loadImage, map, max, max, min, min, morph, noise, noise, noise, noise, pow, radians, random, random, random, random, random, randomBool, randomBool, randomBool, randomColor, randomGaussian, randomNiceColor, round, setSeed, shuffle, shuffle, shuffle, shuffle, sign, sin, sqrt, sum, tan
-
Field Details
-
IN_BLUEJ
public static final boolean IN_BLUEJGibt an, ob die Zeichenmaschine aus BlueJ heraus gestartet wurde. -
canvas
Die Leinwand, auf die alles gezeichnet wird. Die Leinwand enthältEbenen, die einzelne Zeichnungen enthalten. Die Inhalte aller Ebenen werden einmal pro Frame auf die Hauptleinwand übertragen. -
background
Ebene mit der Hintergrundfarbe. -
drawing
Zeichenebene -
shapes
Formenebene -
frame
Das Zeichenfenster der Zeichenmaschine -
cursorVisible
protected boolean cursorVisibleOb der Mauszeiger derzeit sichtbar ist (bzw. sein sollte). -
globalSyncLock
Globaler Monitor, der einmal pro Frame vom Zeichenthread freigegeben wird. Andere Threads könnenObject.wait()auf dem Monitor aufrufen, um sich mit dem Zeichenthread zu synchronisieren. Derwait()Aufruf sollte sich zur Sicherheit in einer Schleife befinden, die prüft, ob sich der AktuelleConstants.tickerhöht hat.int lastTick = Constants.tick; // Do some work while( lastTick >= Constants.tick ) { synchronized( Zeichenmaschine.globalSyncLock ) { try { Zeichenmaschine.globalSyncLock.wait(); } catch( InterruptedException ex ) {} } } // Next frame has startedDie
FrameSynchronizedTaskimplementiert eineTask, die sich automatisch auf diese Wiese mit dem Zeichenthread synchronisiert.
-
-
Constructor Details
-
Zeichenmaschine
public Zeichenmaschine()Erstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Siehe
Zeichenmaschine(int, int, String, boolean)für mehr Details. -
Zeichenmaschine
public Zeichenmaschine(boolean run_once) Erstellt eine neue Zeichenmaschine mit Standardwerten für Titel und Größe.Siehe
Zeichenmaschine(int, int, String, boolean)für mehr Details.- Parameters:
run_once-truebeendet die Zeichenmaschine nach einem Aufruf vondraw().
-
Zeichenmaschine
Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe.Siehe
Zeichenmaschine(int, int, String, boolean)für mehr Details.- Parameters:
title- Der Titel, der oben im Fenster steht.
-
Zeichenmaschine
Erstellt eine neue Zeichenmaschine mit dem angegebene Titel und Standardwerten für die Größe.Siehe
Zeichenmaschine(int, int, String, boolean)für mehr Details.- Parameters:
title- Der Titel, der oben im Fenster steht.run_once-truebeendet die Zeichenmaschine nach einem Aufruf vondraw().
-
Zeichenmaschine
Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Siehe
Zeichenmaschine(int, int, String, boolean)für mehr Details.- Parameters:
width- Breite derZeichenleinwand.height- Höhe derZeichenleinwand.title- Der Titel, der oben im Fenster steht.
-
Zeichenmaschine
Erstellt eine neue zeichenmaschine mit einer Leinwand der angegebenen Größe und dem angegebenen Titel.Die Zeichenmaschine öffnet automatisch ein Fenster mit einer
Zeichenleinwand, diewidthPixel breit undheightPixel hoch ist. Die Leinwand hat immer eine Mindestgröße von 100x100 Pixeln und kann nicht größer als der aktuelle Bildschirm werden. Das Fenster bekommt den angegebenen Titel.Falls
run_oncegleichfalseist, werdenupdate(double)unddraw()entsprechend derConstants.framesPerSecondkontinuierlich aufgerufen. Falls das Programm als Unterklasse der Zeichenmaschine verfasst wird, dann kann auch,update(double)überschrieben werden, damit die Maschine nicht automatisch beendet.- Parameters:
width- Breite derZeichenleinwand.height- Höhe derZeichenleinwand.title- Der Titel, der oben im Fenster steht.run_once-truebeendet die Zeichenmaschine nach einem Aufruf vondraw().
-
-
Method Details
-
centerFrame
public final void centerFrame()Zentriert das Zeichenfenster auf dem aktuellen Bildschirm. -
setFullscreen
public final void setFullscreen(boolean pEnable) Aktiviert oder deaktiviert den Vollbildmodus für die Zeichenmaschine.Der Vollbildmodus wird abhängig von
pEnableentweder aktiviert oder deaktiviert. Wird die Zeichenmaschine in den Vollbildmodus versetzt, dann wird automatisch einKeyListeneraktiviert, der bei Betätigung der ESCAPE-Taste den Vollbildmodus verlässt. Wird der Vollbildmodus verlassen, wird die zuletzt gesetzte Fenstergröße wiederhergestellt.- Parameters:
pEnable- Wenntrue, wird der Vollbildmodus aktiviert, ansonsten deaktiviert.
-
isFullscreen
public boolean isFullscreen()Prüft, ob das Zeichenfenster im Vollbild läuft.- Returns:
true, wenn sich das Fesnter im Vollbildmodus befindet,falsesonst.
-
getState
Gibt den aktuellenZustandder Zeichenmaschine zurück.- Returns:
- Der Zustand der Zeichenmaschine.
-
show
public final void show()Zeigt das Zeichenfenster an. -
hide
public final void hide()Versteckt das Zeichenfenster. -
redraw
public final void redraw()Zeichnet dieZeichenleinwandneu und zeigt den aktuellen Inhalt im Zeichenfenster an. -
render
public final void render()Zeigt den aktuellen Inhalt derZeichenleinwandim Zeichenfenster an, ohne vorherdraw()aufzurufen. -
pause
public final void pause()Pausiert die Ausführung vonupdate(double)unddraw()nach dem nächsten vollständigen Frame.Die Zeichenmaschine wechselt in den Zustand
Options.AppState.PAUSED, sobald der aktuelle Frame beendet wurde. -
resume
public final void resume()Setzt die Ausführung der Zeichenmaschine fort, nachdem diese mitpause()pausiert wurde. -
isPaused
public final boolean isPaused()Prüft, ob die Zeichenmaschine gerade pausiert ist.- Returns:
-
isTerminated
public final boolean isTerminated() -
isTerminating
public final boolean isTerminating() -
stop
public final void stop()Stoppt die Zeichenmaschine.Nachdem der aktuelle Frame gezeichnet wurde wechselt die Zeichenmaschine in den Zustand
Options.AppState.STOPPEDund ruftshutdown()auf. Nachdemteardown()ausgeführt wurde wechselt der Zustand zuOptions.AppState.TERMINATED. Das Zeichenfenster bleibt weiter geöffnet.Die Zeichenmaschine reagiert in diesem Zustand weiter auf Eingaben, allerdings muss die Zeichnung nun manuell mit
redraw()aktualisiert werden. -
exit
public final void exit() -
exitNow
public final void exitNow() -
quit
public final void quit()Beendet das Programm vollständig.Enspricht dem Aufruf
quit(true).- See Also:
-
quit
public final void quit(boolean exit) Beendet das Programm. Fallsexitgleichtrueist, wird die komplette VM beendet.Die Methode sorgt nicht für ein ordnungsgemäßes herunterfahren und freigeben aller Ressourcen, da die Zeichenmaschine gegebenenfalls geöffnet bleiben und weitere Aufgaben erfüllen soll. Aufrufende Methoden sollten dies berücksichtigen.
Soll das Programm vollständig beendet werden, ist es ratsamer
exit()zu verwenden.- Parameters:
exit- Ob die VM beendet werden soll.- See Also:
-
setSize
public final void setSize(int width, int height) Ändert die Größe derZeichenleinwand.- Parameters:
width- Neue Breite der Zeichenleinwand.height- Neue Höhe der Zeichenleinwand.- See Also:
-
getWidth
public final int getWidth()Die Breite derZeichenleinwand.- Returns:
- Die Breite der
Zeichenleinwand.
-
getHeight
public final int getHeight()Die Höhe derZeichenleinwand.- Returns:
- Die Höhe der
Zeichenleinwand.
-
setTitle
Setzt den Titel des Zeichenfensters.- Parameters:
title- Der Titel, der oben im Zeichenfenster angezeigt wird.
-
getCanvas
Gibt die Zeichenleinwand zurück.- Returns:
- Die Zeichenleinwand.
-
addLayer
Fügt derZeichenleinwandeine weitereEbenehinzu.- Parameters:
layer- Die neue Ebene.
-
getLayerCount
public final int getLayerCount()Gibt die Anzahl derEbenenin derZeichenleinwandzurück.- Returns:
- Die Anzahl der Ebenen.
-
getLayer
Gibt dieEbeneam angegebenen Index zurück. Gibt es keine Ebene mit diesem Index.- Parameters:
index-- Returns:
-
getLayer
Gibt die erste (unterste)Ebeneder angegebenen Klasse zurück.DrawingLayer draw = getLayer(DrawingLayer.class);- Type Parameters:
LT-- Parameters:
layerClass-- Returns:
-
getBackgroundLayer
Gibt dieEbenemit der Hintergrundfarbe zurück. Gibt es keine solche Ebene, so wird eine erstellt und derZeichenleinwandhinzugefügt.In der Regel sollte dies dieselbe Ebene sein wie
background.- Returns:
- Die Hintergrundebene.
-
getDrawingLayer
Gibt die Standard-Zeichenebenezurück. Gibt es keine solche Ebene, so wird eine erstellt und derZeichenleinwandhinzugefügt.In der Regel sollte dies dieselbe Ebene sein wie
drawing.- Returns:
- Die Zeichenebene.
-
getShapesLayer
Gibt die Standard-Formenebenezurück. Gibt es keine solche Ebene, so wird eine erstellt und derZeichenleinwandhinzugefügt.In der Regel sollte dies dieselbe Ebene sein wie
shapes.- Returns:
- Die Formenebene.
-
getFramesPerSecond
public final int getFramesPerSecond()Gibt die aktuellen Frames pro Sekunde zurück.- Returns:
- Angepeilte Frames pro Sekunde
-
setFramesPerSecond
public final void setFramesPerSecond(int pFramesPerSecond) Setzt die Anzahl an Frames pro Sekunde auf einen neuen Wert.- Parameters:
pFramesPerSecond- Neue FPS.
-
getImage
Erstellt aus dem aktuellen Inhalt derZeichenleinwandein neuesBufferedImage. -
saveImage
public final void saveImage()Speichert den aktuellen Inhalt derZeichenleinwandin einer Bilddatei auf der Festplatte. Zur Auswahl der Zieldatei wird dem Nutzer einJFileChooserangezeigt. -
saveImage
Speichert den aktuellen Inhalt derZeichenleinwandin einer Bilddatei im angegebenen Dateipfad auf der Festplatte. -
snapshot
Erstellt eine Momentaufnahme des aktuellen Inhalts derZeichenleinwandund erstellt daraus eineBildebene. Die Ebene wird automatisch derZeichenleinwandvor dembackgroundhinzugefügt.- Returns:
- Die neue Bildebene.
-
delay
public final void delay(int ms) Pausiert die Schleife der Zeichenmaschine für die angegebene Anzahl an Millisekunden.Falls
delay()während eines Aufrufs vondraw()aufgerufen wird, dann wird der aktuelle Zustand der Leinwand angezeigt.Die Methode übernimmt keine Garantie, dass die Wartezeit exakt
msMillisekunden beträgt. Sie kann etwas kürzer oder (für kurze Wartezeiten) etwas länger sein. Für zeitkritische Simulationen sollte daher die genaue Zeitdifferenz gemessen und berücksichtigt werden.- Parameters:
ms- Wartezeit in Millisekunden.
-
hideCursor
public final void hideCursor()Macht den Mauszeiger unsichtbar.Nach dem Aufruf gilt
cursorVisible == false.Der Aufruf von
hideCursor()ist dasselbe wie der Aufruf vonsetCursor(null). -
showCursor
public final void showCursor()Zeigt den Mauszeiger wieder an, falls er zuvorverstecktwurde.Nach dem Aufruf gilt
cursorVisible == true.Der Aufruf von
hideCursor()ist dasselbe wie der Aufruf vonsetCursor(Cursor.DEFAULT_CURSOR). -
setCursor
Ändert den Mauszeiger auf ein eigenes Bild.Das Bild darf die vom Betriebssystem vorgegebene Mindestgröße nicht überschreiten und kann aus einer beliebigen Quelle geladen werden, oder direkt im Programm erstellt werden. Die Koordinaten des Hotspot geben an, an welcher Stelle des Bildes sich die "Spitze" befindet. Die Koordinaten werden relativ zur oberen linken Ecke des Bildes angegeben.
- Parameters:
pCursorImage- Ein Bild, das den Mauszeiger ersetzt.hotSpotX- Relative x-Koordinate des Hotspots.hotSpotY- Relative y-Koordinate des Hotspots.- See Also:
-
setCursor
public final void setCursor(int pPredefinedCursor) Setzt den Mauszeiger auf eines der vordefinierten Symbole.Die Konstanten der Klasse
Cursordefinieren 13 Standardzeiger, die durch angabe der Nummer geladen werden können.setCursor(Cursor.HAND_CURSOR);- Parameters:
pPredefinedCursor- Eine der Cursor-Konstanten.- See Also:
-
setCursor
Setzt den Mauszeiger auf das übergebenen Cursor-Objekt. WennpCursornullist, wird der Mauszeiger unsichtbar gemacht (dies ist dasselbe wie der Aufruf vonhideCursor()).- Parameters:
pCursor- Ein Cursor-Objekt odernull.Nach Aufruf der Methode kann über
cursorVisibleabgefragt werden, ob der Cursor zurzeit sichtbar ist oder nicht.
-
settings
public void settings()Die Settings werden einmal beim Erstellten der Zeichenmaschine aufgerufen.settings()wird nur selten benötigt, wenn das Zeichenfenster -
setup
public void setup()Methode, die von Unterklassen überschrieben werden sollte, um die Zeichenmaschine vor dem Start zu konfigurieren. Hier können vorbereitende Befehle ausgeführt werden, die dieZeichenleinwandzu initialisieren, neue Objekte instanziieren und Variablen initialisieren. -
update
public void update(double delta) update()wird einmal pro Frame vordraw()aufgerufen, um notwendige Aktualisierungen vorzunehmen. Im Gegensatz zudraw()bekommtupdate()zusätzlichConstants.deltaübergeben, um die Aktualisierungen abhängig von der echten Verzögerung zwischen zwei Frames zu berechnen.deltawird in Sekunden angegeben. Um eine Form zum Beispiel um50Pixel pro Sekunde inx-Richtung zu bewegen, kann so vorgegangen werden:shape.move(50*delta, 0.0);- Parameters:
delta-
-
draw
public void draw()draw()wird einmal pro Frame aufgerufen. Bei einerFrameratevon 60 also in etwa 60-Mal pro Sekunde. In derdraw-Methode wird der Inhalt der Ebenen manipuliert und deren Inhalte gezeichnet. Am Ende des Frames werden alle Ebenen auf dieZeichenleinwandübertragen.draw()stellt die wichtigste Methode für eine Zeichenmaschine dar, da hier die Zeichnung des Programms erstellt wird. -
shutdown
public void shutdown()teardown()wird aufgerufen, sobald die Schleife des Hauptprogramms beendet wurde. Dies passiert entweder nach dem ersten Durchlauf (wenn keine eigeneupdate(double)erstellt wurde), nach dem Aufruf vonstop()oder nachdem dasZeichenfenstergeschlossen wurde.In
teardown()kann zum Beispiel der Abschlussbildschirm eines Spiels oder der Abspann einer Animation angezeigt werden, oder mitsaveImage()die erstellte Zeichnung abgespeichert werden. -
scheduleTask
-
scheduleTask
-
mouseClicked
-
mouseClicked
public void mouseClicked() -
mousePressed
-
mousePressed
public void mousePressed() -
mouseReleased
-
mouseReleased
public void mouseReleased() -
mouseDragged
-
mouseDragged
public void mouseDragged() -
mouseMoved
-
mouseMoved
public void mouseMoved() -
mouseWheelMoved
-
mouseWheelMoved
public void mouseWheelMoved() -
keyTyped
-
keyTyped
public void keyTyped() -
keyPressed
-
keyPressed
public void keyPressed() -
keyReleased
-
keyReleased
public void keyReleased() -
fullscreenChanged
public void fullscreenChanged()
-