Class StdGraph
- All Implemented Interfaces:
ActionListener
,KeyListener
,MouseListener
,MouseMotionListener
,EventListener
StdGraph
erweitert die Java-Ausgabeabstraktion um die
Möglichkeit der grafischen Ausgabe in einem Fenster. Sie verwendet ein
einfachen grafisches Modell, bestehend aus Punkten, Linien, Rechtecken,
Kreisen und anderen geometrischen Figuren. Grafiken können im PNG-Format
gespeichert werden. Außerdem können Grafiken animiert werden, um einfache
Simulationen zu visualisieren.
Einführung
Ein erstes Programm mit StdGraph
könnte so aussehen:
public class TestStdGraph { public static void main(String[] args) { StdGraph.setPenRadius(0.05); StdGraph.setPenColor(Color.BLUE); StdGraph.point(0.5, 0.5); StdGraph.setPenColor(Color.MAGENTA); StdGraph.line(0.2, 0.2, 0.8, 0.2); } }Wenn Sie dieses Programm übersetzen und ausführen, sollte ein Fenster geöffnet werden, in welchem Sie eine magentafarbene Linie und einen blauen Punkt sehen.
Punkte und Linien:
Die x- and y-Koordinaten müssen innerhalb der Zeichenfläche liegen. Das Intervall der zulässigen Koordinaten beträgt 0 bis 1. Außerhalb dieses Bereichs liegende Elemente sind unsichtbar.
Quadrate, Rechtecke, Kreise und Elipsen:
circle(double x, double y, double radius)
ellipse(double x, double y, double width, double height)
square(double x, double y, double halfLength)
-
rectangle(double x, double y, double halfWidth, double halfHeight)
Die x- und y-Koordinaten bestimmen das Zentrum der Figur.
Während die obigen Methoden lediglich Umrisse zeichnen, füllen die folgenden Methoden eine Figor mit der aktuell gewählten Zeichenfarbe aus:
filledCircle(double x, double y, double radius)
filledEllipse(double x, double y, double width, double height)
filledSquare(double x, double y, double radius)
-
filledRectangle(double x, double y, double halfWidth, double halfHeight)
Kreisausschnitte:
Der Ausschnitt spannt sich zwischen den beiden angegebenen Gradzahlen auf, die gegen den Uhrzeigersinn anzugeben sind.
Polygone:
Die Koordinaten der Eckpunkte werden in Form von Arrays angegeben:
double[] x = { 0.1, 0.2, 0.3, 0.2 }; double[] y = { 0.2, 0.3, 0.2, 0.1 }; StdGraph.filledPolygon(x, y);
Stiftstärke:
Die Standard-Stiftstärke ist 0.002 und wird nicht von Skalierungen der Zeichenfläche beeinflusst. Die Stiftstärke beträgt etwa 1/500 der Dimensionen der Zeichenfläche.
Um einen einzelnen Punkt in der Größe eines Pixels zu zeichnen, ist der Pinsel-/Stiftradius auf 0.0 zu setzen.
Stiftfarbe:
Größe der Zeichenfläche:
Standardmäßig stehen 800x800 Pixel zur Verfügung. Die Größe kann jedoch selbst definiert werden:
Skalierung und Koordinatensystem:
Alle Zeichnungen werden in einem Einheitsquadrat erstellt. Die linke Ecke unten hat die Koordinaten (0, 0). Die rechte oberer Ecke hat die Koordinaten (1, 0). Alle darzustellenden Werte in diesen Bereich hinein skaliert.
setXScale(double xmin, double xmax)
setYScale(double ymin, double ymax)
setScale(double min, double max)
Text:
text(double x, double y, String text)
text(double x, double y, String text, double angle)
textLeft(double x, double y, String text)
textRight(double x, double y, String text)
Die Standardschriftart ist Sans Serif mit 16 Punkten.
Font font = new Font("Arial", Font.BOLD, 60); StdGraph.setFont(font); StdGraph.text(0.5, 0.5, "Hello, World");
Bilder:
picture(double x, double y, String filename)
picture(double x, double y, String filename, double angle)
-
picture(double x, double y, String filename, double scaledWidth, double scaledHeight)
-
picture(double x, double y, String filename, double scaledWidth, double scaledHeight, double angle)
Diese Methoden zeichnen Bilder auf der Zeichenfläche. Unterstützte Formate sind JPEG, PNG und GIF.
Speichern:
Als Bildformate werden PNG- und JPG-Dateien unterstützt.
Zeichenfläche löschen:
Animationen (mit Doppelpufferung):
Im Standard ist die Doppelpufferung ausgeschaltet, sodass alle gezeichneten
Element sofort sichtbar sind. Wird die Doppelpufferung aktiviert, so wird
quasi erst im Hintergrund gezeichnet. Die Zeichnung wird erst sichtbar, wenn
show()
aufgerufen wird. Dann wird die aktuelle Zeichnung aus dem
Hintergrund in den Vordergrund kopiert und ersetzt diesen.
Der Haupteinsatz der Doppelpufferung sind animierte Zeichnungen:
- Hintergrundzeichenfläche löschen
- Objekte auf Hintergrundzeichenfläche zeichnen
- Hintergrundzeichenfläche in den Vordergrund kopieren
- je nach Intention: kurze Pause
StdGraph.setScale(-2, +2); StdGraph.enableDoubleBuffering(); double t = 0.0; while (true) { double x = Math.sin(t); double y = Math.cos(t); StdGraph.clear(); StdGraph.filledCircle(x, y, 0.05); StdGraph.filledCircle(-x, -y, 0.05); StdGraph.show(); StdGraph.pause(20); t += 0.02; }
Mit Hilfe von show(int t)
kann der Code kürzer geschrieben werden.
show(int t)
schaltet die Doppelpufferung ein und steuert auch die
Wartezeit zwischen den Bildern, die aus dem Hintergrund- in den
Vordergrundpuffer geschoben werden.
StdGraph.setScale(-2, +2); double t = 0.0; while (true) { double x = Math.sin(t); double y = Math.cos(t); StdGraph.clear(); StdGraph.filledCircle(x, y, 0.05); StdGraph.filledCircle(-x, -y, 0.05); StdGraph.show(20); t += 0.02; }
Maus:
Tastatur:
Einstellungen:
Hinweis: Unter Ubuntu kann es erforderlich sein Module nachzuinstallieren:
$ sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
COPYRIGHT BY Karsten Brodmann 2022 - Die Bibliothek darf ausschließlich für private Lernzwecke verwendet werden. Eine Weitergabe ist nur mit schriftlicher Genehmigung des Autors gestattet.
- Version:
- 1.0
- Author:
- Karsten Brodmann (kb@punkt-akademie.de)
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Die Methode kann nicht direkt aufgerufen werden.static void
arc
(double x, double y, double radius, double angle1, double angle2) Zeichnen eines Kreisausschnittes mit den angegebenen Radius und Zentrum in (x, y), von angle1 bis angle2 (in Winkelgraden).static void
circle
(double x, double y, double radius) Zeichnen eines Kreises mit dem angegebenen Radius und dem Zentrum in (x, y).static void
clear()
Zeichenfläche löschen (weiß).static void
Zeichenfläche mit spezieller Hintergrundfarbe löschen.static void
Doppelpufferung deaktivieren.static void
ellipse
(double x, double y, double width, double height) Zeichnen einer Ellipse mit den angegebenen Halbachsen und dem Zentrum bei (x, y).static void
Aktivierung der Doppelpufferung.static void
filledCircle
(double x, double y, double radius) Zeichnen eines gefüllten Kreises mit dem angegebenen Radius und dem Zentrum in (x, y).static void
filledEllipse
(double x, double y, double width, double height) Zeichnen einer gefüllten Ellipse mit den angegebenen Halbachsen und dem Zentrum bei (x, y).static void
filledPolygon
(double[] x, double[] y) Zeichnen eines gefüllten Polygons mit den Eckpunkten: (x0, y0), (x1, y1), ..., (xn–1, yn–1).static void
filledRectangle
(double x, double y, double halfWidth, double halfHeight) Zeichnen eines gefüllten Rechtecks mit Zentrum (x, y).static void
filledSquare
(double x, double y, double halfLength) Zeichnen eines gefüllten Quadrats mit Zentrum (x, y).static Font
getFont()
rückgabe der aktuellen Schriftart.static Color
Rückgabe der aktuellen Stiftfarbe.static double
Rückgabe der aktuellen Stiftstärke.static boolean
Abfrage, ob noch Tastedrücke in der Warteschlange stehen, die bisher noch nicht verarbeitet wurden (nextKeyTyped()
).static boolean
keyPressed
(int keycode) Prüfen, ob die angegebene Taste gedrückt wurde.void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden, auch wenn sie öffentlich ist.static void
line
(double x0, double y0, double x1, double y1) Zeichnen einer Linie zwischen (x0, y0) und (x1, y1).void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden.static boolean
Rückgabe, ob die Maus getippt wurde.void
Diese Methode kann nicht direkt aufgerufen werden.void
Diese Methode kann nicht direkt aufgerufen werden.static double
mouseX()
Rückgabe der x-Koordinate des Mauszeigers.static double
mouseY()
Rückgabe der y-Koordinate des Mauszeigers.static char
Abrufen des nächsten, bislang nicht verarbeiteten, Tastendrucks.static void
pause
(int t) Pausieren für die angegebene Anzahl von Millisekunden.static void
Zeichnen des Bildes mit Zentrum in (x, y).static void
Zeichnen des Bildes mit Zentrum in (x, y), rotiert um den angegebenen Winkel.static void
Zeichnen des Bildes mit Zentrum in (x, y), skaliert auf die angegebene Größe.static void
Zeichnen des Bildes mit Zentrum in (x, y), skaliert auf die angegebene Größe und um den angegebenen Winkel rotiert.static void
point
(double x, double y) Zeichnen eines Punktes bei Koordinate (x, y).static void
polygon
(double[] x, double[] y) Zeichnen eines Polygons mit den Eckpunkten: (x0, y0), (x1, y1), ..., (xn–1, yn–1).static void
rectangle
(double x, double y, double halfWidth, double halfHeight) Zeichnen eines Rechtecks mit Zentrum (x, y).static void
Speicherung einer Zeichnung im PNG- oder JPG-Format.static void
Standardgröße der Zeichenfläche einstellenstatic void
setCanvasSize
(int newWidth, int newHeight) Setzen der Zeichenflächegröße auf newWidth-mal-newHeight (in Pixeln).static void
setFont()
Einstellen der Standardschriftart (Sans Serif, 16 Punkte).static void
Einstellen der Schriftart.static void
Setzen der Standard-Stiftfarbe (schwarz).static void
setPenColor
(int red, int green, int blue) Setzen der Stiftfarbe auf die angegebene RGB-Farbestatic void
setPenColor
(Color color) Setzen der Stiftfarbe auf die angegebene Farbestatic void
Setzen der Standard-Stiftstärke (0.002).static void
setPenRadius
(double radius) Setzen der Stiftstärke auf den angegebenen Radius.static void
setScale()
0- und y-Skalierung ist per Vorgabe 0.0 bis 1.0.static void
setScale
(double min, double max) Setzen der x- und y-Skalierung auf die angegebenen Werte (symmetrische Skalierung).static void
x-Skalierung ist per Vorgabe 0.0 bis 1.0.static void
setXScale
(double min, double max) Setzen der x-Skalierung auf die angegebenen Werte.static void
y-Skalierung ist per Vorgabe 0.0 bis 1.0.static void
setYScale
(double min, double max) Setzen der y-Skalierung auf die angegebenen Werte.static void
show()
Kopieren des Offline-Inhalts des Bildschirmpuffers in den sichtbaren Puffer.static void
show
(int t) Kopieren des Bildpuffers in den sichtbaren Bildschirmspeicher, pausieren und einschalten der Doppelpufferung.static void
square
(double x, double y, double halfLength) Zeichnen eines Quadrats mit Zentrum (x, y).static void
Textausgabe, zentriert bei (x, y).static void
Textausgabe, zentriert bei (x, y) und um angegebenen Winkel rotiert.static void
Textausgabe, links ausgerichtet bei (x, y).static void
Textausgabe, links ausgerichtet bei (x, y).
-
Method Details
-
setCanvasSize
public static void setCanvasSize()Standardgröße der Zeichenfläche einstellen -
setCanvasSize
public static void setCanvasSize(int newWidth, int newHeight) Setzen der Zeichenflächegröße auf newWidth-mal-newHeight (in Pixeln). Die Zeichenfläche wird gelöscht und das Koordinatensystem neu kalibriert. Stiftstärke, Stiftfarbe und Schriftart werden auf Standardwerte zurückgesetzt. Im Normalfall wird die Methode nur einmalig, zu Beginn eines Programms, aufgerufen.- Parameters:
newWidth
- in PixelnnewHeight
- in Pixeln- Throws:
IllegalArgumentException
- bei nicht-positiven Werten fürnewWidth
und/odernewHeight
-
setXScale
public static void setXScale()x-Skalierung ist per Vorgabe 0.0 bis 1.0. -
setYScale
public static void setYScale()y-Skalierung ist per Vorgabe 0.0 bis 1.0. -
setScale
public static void setScale()0- und y-Skalierung ist per Vorgabe 0.0 bis 1.0. -
setXScale
public static void setXScale(double min, double max) Setzen der x-Skalierung auf die angegebenen Werte.- Parameters:
min
- Minimum der x-Skalierungmax
- Maximum der x-Skalierung- Throws:
IllegalArgumentException
- wenn(max == min)
IllegalArgumentException
- wennmin
und/odermax
gleich NaN oder unendlich
-
setYScale
public static void setYScale(double min, double max) Setzen der y-Skalierung auf die angegebenen Werte.- Parameters:
min
- Minimum der y-Skalierungmax
- Maximum der y-Skalierung- Throws:
IllegalArgumentException
- wenn(max == min)
IllegalArgumentException
- wennmin
und/odermax
gleich NaN oder unendlich
-
setScale
public static void setScale(double min, double max) Setzen der x- und y-Skalierung auf die angegebenen Werte (symmetrische Skalierung).- Parameters:
min
- Minimum der Skalierungmax
- Maximum der Skalierung- Throws:
IllegalArgumentException
- wenn(max == min)
IllegalArgumentException
- wennmin
und/odermax
gleich NaN oder unendlich
-
clear
public static void clear()Zeichenfläche löschen (weiß). -
clear
Zeichenfläche mit spezieller Hintergrundfarbe löschen.- Parameters:
color
- Hintergrundfarbe- Throws:
IllegalArgumentException
- fallscolor
null
ist
-
getPenRadius
public static double getPenRadius()Rückgabe der aktuellen Stiftstärke.- Returns:
- aktueller Radius des Zeichenstifts
-
setPenRadius
public static void setPenRadius()Setzen der Standard-Stiftstärke (0.002).Der Zeichenstift ist kreisförmig, so dass Linien runde Enden haben. Beim Zeichnen eines Punktes hat auch dieser eine kreisförmige Fläche. Skalierungen des Koordinatensystems haben keinen Einfluss auf die Stiftstärke.
-
setPenRadius
public static void setPenRadius(double radius) Setzen der Stiftstärke auf den angegebenen Radius.Der Zeichenstift ist kreisförmig, so dass Linien runde Enden haben. Beim Zeichnen eines Punktes hat auch dieser eine kreisförmige Fläche. Skalierungen des Koordinatensystems haben keinen Einfluss auf die Stiftstärke.
- Parameters:
radius
- Radius der Stiftstärke- Throws:
IllegalArgumentException
- fallsradius
negativ, NaN oder unendlich
-
getPenColor
Rückgabe der aktuellen Stiftfarbe.- Returns:
- aktuelle Zeichenfarbe des Stifts
-
setPenColor
public static void setPenColor()Setzen der Standard-Stiftfarbe (schwarz). -
setPenColor
Setzen der Stiftfarbe auf die angegebene Farbe- Parameters:
color
- des Stiftes- Throws:
IllegalArgumentException
- fallscolor
null
ist
-
setPenColor
public static void setPenColor(int red, int green, int blue) Setzen der Stiftfarbe auf die angegebene RGB-Farbe- Parameters:
red
- Rot-Anteil (0 bis 255)green
- Grün-Anteil (0 bis 255)blue
- Blau-Anteil (0 bis 255)- Throws:
IllegalArgumentException
- fallsred
,grün
oderrblue
außerhalb der abgegebenen Bereiche
-
getFont
rückgabe der aktuellen Schriftart.- Returns:
- aktuelle Schriftart
-
setFont
public static void setFont()Einstellen der Standardschriftart (Sans Serif, 16 Punkte). -
setFont
Einstellen der Schriftart.- Parameters:
fontfamily
- Schriftart- Throws:
IllegalArgumentException
- falssfontfamily
null
ist
-
line
public static void line(double x0, double y0, double x1, double y1) Zeichnen einer Linie zwischen (x0, y0) und (x1, y1).- Parameters:
x0
- the x-coordinate of one endpointy0
- the y-coordinate of one endpointx1
- the x-coordinate of the other endpointy1
- the y-coordinate of the other endpoint- Throws:
IllegalArgumentException
- if any coordinate is either NaN or infinite
-
point
public static void point(double x, double y) Zeichnen eines Punktes bei Koordinate (x, y).Der Punkt ist ein gefüllter Kreis dess Radius der Stiftstärke entspricht. Um ein einzelnes Pixel zu zeichnen, muss die Stiftstärke vorher auf 0 gesetzt werden.
- Parameters:
x
- x-Koordinate des Punktesy
- y-Koordinate des Punktes- Throws:
IllegalArgumentException
- fallsx
odery
NaN oder unendlich sind
-
circle
public static void circle(double x, double y, double radius) Zeichnen eines Kreises mit dem angegebenen Radius und dem Zentrum in (x, y).- Parameters:
x
- x-Koordinate des Kreiszentrumsy
- y-Koordinate des Kreiszentrumsradius
- Kreisradius- Throws:
IllegalArgumentException
- fallsradius
negativIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
filledCircle
public static void filledCircle(double x, double y, double radius) Zeichnen eines gefüllten Kreises mit dem angegebenen Radius und dem Zentrum in (x, y).- Parameters:
x
- x-Koordinate des Kreiszentrumsy
- y-Koordinate des Kreiszentrumsradius
- Kreisradius- Throws:
IllegalArgumentException
- fallsradius
negativIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
ellipse
public static void ellipse(double x, double y, double width, double height) Zeichnen einer Ellipse mit den angegebenen Halbachsen und dem Zentrum bei (x, y).- Parameters:
x
- x-Koordinate des Zentrums der Ellipsey
- y-Koordinate des Zentrums der Ellipsewidth
- Breite der Ellipseheight
- Höhe der Ellipse- Throws:
IllegalArgumentException
- fallswidth
oderheight
negativ istIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
filledEllipse
public static void filledEllipse(double x, double y, double width, double height) Zeichnen einer gefüllten Ellipse mit den angegebenen Halbachsen und dem Zentrum bei (x, y).- Parameters:
x
- x-Koordinate des Zentrums der Ellipsey
- y-Koordinate des Zentrums der Ellipsewidth
- Breite der Ellipseheight
- Höhe der Ellipse- Throws:
IllegalArgumentException
- fallswidth
oderheight
negativ istIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
arc
public static void arc(double x, double y, double radius, double angle1, double angle2) Zeichnen eines Kreisausschnittes mit den angegebenen Radius und Zentrum in (x, y), von angle1 bis angle2 (in Winkelgraden).- Parameters:
x
- x-Koordinate des Zentrums des Kreisesy
- y-Koordinate des Zentrums des Kreisesradius
- Kreisradiusangle1
- Startwinkel: 0 bedeutet einen Start bei 3 Uhrangle2
- Endwinkel des Kreisbogens: wenn sie einen 90 Grad Bogen zeichnen wollen, dann beträgt der Winkel angle1+90- Throws:
IllegalArgumentException
- fallsradius
negativ istIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
square
public static void square(double x, double y, double halfLength) Zeichnen eines Quadrats mit Zentrum (x, y).- Parameters:
x
- x-Koordinate des Zentrums des Quadratesy
- y-Koordinate des Zentrums des QuadrateshalfLength
- Hälfte der Seitenlänge des Quadrates- Throws:
IllegalArgumentException
- fallshalfLength
negativIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
filledSquare
public static void filledSquare(double x, double y, double halfLength) Zeichnen eines gefüllten Quadrats mit Zentrum (x, y).- Parameters:
x
- x-Koordinate des Zentrums des Quadratesy
- y-Koordinate des Zentrums des QuadrateshalfLength
- Hälfte der Seitenlänge des Quadrates- Throws:
IllegalArgumentException
- fallshalfLength
negativIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
rectangle
public static void rectangle(double x, double y, double halfWidth, double halfHeight) Zeichnen eines Rechtecks mit Zentrum (x, y).- Parameters:
x
- x-Koordinate des Zentrums des Quadratesy
- y-Koordinate des Zentrums des QuadrateshalfWidth
- Hälfte der RechtecksbreitehalfHeight
- Hälfte der Rechteckshöhe- Throws:
IllegalArgumentException
- if eitherhalfWidth
orhalfHeight
is negativeIllegalArgumentException
- falls irgendein Argument NaN oder unendlich istIllegalArgumentException
- fallshalfWidth
oderhalfHeight
negativIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
filledRectangle
public static void filledRectangle(double x, double y, double halfWidth, double halfHeight) Zeichnen eines gefüllten Rechtecks mit Zentrum (x, y).- Parameters:
x
- x-Koordinate des Zentrums des Quadratesy
- y-Koordinate des Zentrums des QuadrateshalfWidth
- Hälfte der RechtecksbreitehalfHeight
- Hälfte der Rechteckshöhe- Throws:
IllegalArgumentException
- if eitherhalfWidth
orhalfHeight
is negativeIllegalArgumentException
- falls irgendein Argument NaN oder unendlich istIllegalArgumentException
- fallshalfWidth
oderhalfHeight
negativIllegalArgumentException
- falls irgendein Argument NaN oder unendlich ist
-
polygon
public static void polygon(double[] x, double[] y) Zeichnen eines Polygons mit den Eckpunkten: (x0, y0), (x1, y1), ..., (xn–1, yn–1).- Parameters:
x
- Array der x-Koordinaten des Polygonsy
- Array der y-Koordinaten des Polygons- Throws:
IllegalArgumentException
- fallsx[]
undy[]
unterschiedlich viele Elemente besitzenIllegalArgumentException
- falls eine Koordinate NaN oder unendlichIllegalArgumentException
- fallsx[]
odery[]
null
ist
-
filledPolygon
public static void filledPolygon(double[] x, double[] y) Zeichnen eines gefüllten Polygons mit den Eckpunkten: (x0, y0), (x1, y1), ..., (xn–1, yn–1).- Parameters:
x
- Array der x-Koordinaten des Polygonsy
- Array der y-Koordinaten des Polygons- Throws:
IllegalArgumentException
- fallsx[]
undy[]
unterschiedlich viele Elemente besitzenIllegalArgumentException
- falls eine Koordinate NaN oder unendlichIllegalArgumentException
- fallsx[]
odery[]
null
ist
-
picture
Zeichnen des Bildes mit Zentrum in (x, y).Unterstützte Bildformate sind: JPG/JPEG, PNG und GIF.
- Parameters:
x
- x-Koordinate des Bildzentrumsy
- y-Koordinate des Bildzentrumsfilename
- Dateiname des Bildes- Throws:
IllegalArgumentException
- falls die angegebene Biddatei ungültigIllegalArgumentException
- fallsx
odery
NaN oder unendlich istIllegalArgumentException
- fallsfilename
null
ist
-
picture
Zeichnen des Bildes mit Zentrum in (x, y), rotiert um den angegebenen Winkel.Unterstützte Bildformate sind: JPG/JPEG, PNG und GIF.
- Parameters:
x
- x-Koordinate des Bildzentrumsy
- y-Koordinate des Bildzentrumsfilename
- Dateiname des Bildesangle
- Drehwinkel in Winkelgraden (gegen den Uhrzeigersinn)- Throws:
IllegalArgumentException
- falls die angegebene Biddatei ungültigIllegalArgumentException
- fallsx
,y
oderangle
NaN oder unendlich istIllegalArgumentException
- fallsfilename
null
ist
-
picture
public static void picture(double x, double y, String filename, double scaledWidth, double scaledHeight) Zeichnen des Bildes mit Zentrum in (x, y), skaliert auf die angegebene Größe.Unterstützte Bildformate sind: JPG/JPEG, PNG und GIF.
- Parameters:
x
- x-Koordinate des Bildzentrumsy
- y-Koordinate des Bildzentrumsfilename
- Dateiname des BildesscaledWidth
- Breite des Bildes (in Bildschirmkoordinaten)scaledHeight
- Höhe des Bildes (in Bildschirmkoordinaten)- Throws:
IllegalArgumentException
- fallsscaledWidth
oderscaledHeight
negativIllegalArgumentException
- falls die angegebene Biddatei ungültigIllegalArgumentException
- fallsx
odery
NaN oder unendlich istIllegalArgumentException
- fallsfilename
null
ist
-
picture
public static void picture(double x, double y, String filename, double scaledWidth, double scaledHeight, double angle) Zeichnen des Bildes mit Zentrum in (x, y), skaliert auf die angegebene Größe und um den angegebenen Winkel rotiert.Unterstützte Bildformate sind: JPG/JPEG, PNG und GIF.
- Parameters:
x
- x-Koordinate des Bildzentrumsy
- y-Koordinate des Bildzentrumsfilename
- Dateiname des BildesscaledWidth
- Breite des Bildes (in Bildschirmkoordinaten)scaledHeight
- Höhe des Bildes (in Bildschirmkoordinaten)angle
- Drehwinkel in Winkelgraden (gegen den Uhrzeigersinn)- Throws:
IllegalArgumentException
- fallsscaledWidth
oderscaledHeight
negativIllegalArgumentException
- falls die angegebene Biddatei ungültigIllegalArgumentException
- fallsx
odery
NaN oder unendlich istIllegalArgumentException
- fallsfilename
null
ist
-
text
Textausgabe, zentriert bei (x, y).- Parameters:
x
- x-Koordinate der Textmittey
- y-Koordinate der Textmittetext
- auszugebende Zeichenkette- Throws:
IllegalArgumentException
- fallstext
null
istIllegalArgumentException
- fallsx
odery
NaN oder unendlich
-
text
Textausgabe, zentriert bei (x, y) und um angegebenen Winkel rotiert.- Parameters:
x
- x-Koordinate der Textmittey
- y-Koordinate der Textmittetext
- auszugebende Zeichenketteangle
- Rotation in Winkelgraden (gegen den Uhrzeigersinn)- Throws:
IllegalArgumentException
- fallstext
null
istIllegalArgumentException
- fallsx
odery
NaN oder unendlich
-
textLeft
Textausgabe, links ausgerichtet bei (x, y).- Parameters:
x
- x-Koordinate der linken Textkantey
- y-Koordinate der linken Textkantetext
- auszugebende Zeichenkette- Throws:
IllegalArgumentException
- fallstext
null
istIllegalArgumentException
- fallsx
odery
NaN oder unendlich
-
textRight
Textausgabe, links ausgerichtet bei (x, y).- Parameters:
x
- x-Koordinate der rechten Textkantey
- y-Koordinate der rechten Textkantetext
- auszugebende Zeichenkette- Throws:
IllegalArgumentException
- fallstext
null
istIllegalArgumentException
- fallsx
odery
NaN oder unendlich
-
show
public static void show(int t) Kopieren des Bildpuffers in den sichtbaren Bildschirmspeicher, pausieren und einschalten der Doppelpufferung.- Parameters:
t
- Anzahl Millisekunden pausieren
-
pause
public static void pause(int t) Pausieren für die angegebene Anzahl von Millisekunden.- Parameters:
t
- Anzahl Millisekunden pausieren
-
show
public static void show()Kopieren des Offline-Inhalts des Bildschirmpuffers in den sichtbaren Puffer. Die Methode ist nur sinnvoll zu nutzen, wenn Doppelpufferung aktiviert ist (enableDoubleBuffering()
) -
enableDoubleBuffering
public static void enableDoubleBuffering()Aktivierung der Doppelpufferung. Zeichungen werden quasi im Hintergrund angelegt, ein Bild wird erst gezeigt, wennshow()
odershow(int t)
aufgerufen wird. - Sinnvoll für Animationen oder komplexe Bilder, die einen langsamen Aufbau haben. -
disableDoubleBuffering
public static void disableDoubleBuffering()Doppelpufferung deaktivieren. -
save
Speicherung einer Zeichnung im PNG- oder JPG-Format. Das Format wird anhand der Dateiendung des Dateinamens erkannt.- Parameters:
filename
- Name der zu sichernden Datei (.png oder .jpg)- Throws:
IllegalArgumentException
- fallsfilename
null
-
actionPerformed
Die Methode kann nicht direkt aufgerufen werden.- Specified by:
actionPerformed
in interfaceActionListener
-
mousePressed
public static boolean mousePressed()Rückgabe, ob die Maus getippt wurde.- Returns:
true
falls Maus gedrückt,false
sonst
-
mouseX
public static double mouseX()Rückgabe der x-Koordinate des Mauszeigers.- Returns:
- x-Koordinate des Mauszeigers
-
mouseY
public static double mouseY()Rückgabe der y-Koordinate des Mauszeigers.- Returns:
- y-Koordinate des Mauszeigers
-
mouseClicked
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mouseClicked
in interfaceMouseListener
-
mouseEntered
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mouseEntered
in interfaceMouseListener
-
mouseExited
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mouseExited
in interfaceMouseListener
-
mousePressed
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mousePressed
in interfaceMouseListener
-
mouseReleased
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mouseReleased
in interfaceMouseListener
-
mouseDragged
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mouseDragged
in interfaceMouseMotionListener
-
mouseMoved
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
mouseMoved
in interfaceMouseMotionListener
-
hasNextKeyTyped
public static boolean hasNextKeyTyped()Abfrage, ob noch Tastedrücke in der Warteschlange stehen, die bisher noch nicht verarbeitet wurden (nextKeyTyped()
).- Returns:
true
falls noch unverarbeitete Tastenanschläge vorhanden, sonstfalse
-
nextKeyTyped
public static char nextKeyTyped()Abrufen des nächsten, bislang nicht verarbeiteten, Tastendrucks. Es wird jeweils ein Unicode-Zeichen zurückgegeben, korrespondierend zur gedrückten Taste (z.B.'a'
oder'A'
).Funktionstasten (z.B. F1 oder Cursortasten) und Modifizierertasten (wie z.B. CTRL) werden nicht erkannt!
- Returns:
- nächster unverarbeiteter Tastaturanschlag
- Throws:
NoSuchElementException
- falls kein Tastenanschlag mehr im Puffer
-
keyPressed
public static boolean keyPressed(int keycode) Prüfen, ob die angegebene Taste gedrückt wurde.Diese Methode verwendet den Keycode (entsprechend einer physikalischen Taste) als Argument. Sie kann Funktions- und Modifizierertasten erkennen. Siehe
KeyEvent
für eine Beschreibung der Keycodes.- Parameters:
keycode
- Keycode der zu prüfenden Taste- Returns:
true
fallskeycode
aktuell gedrückt wurde, sonstfalse
-
keyTyped
Diese Methode kann nicht direkt aufgerufen werden, auch wenn sie öffentlich ist.- Specified by:
keyTyped
in interfaceKeyListener
-
keyPressed
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
keyPressed
in interfaceKeyListener
-
keyReleased
Diese Methode kann nicht direkt aufgerufen werden.- Specified by:
keyReleased
in interfaceKeyListener
-