Einführung in das Zeichnen von Rechtecken mit Swing im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. [] (Swing, Rechteck zeichnen, Rechtecke zeichnen, drawRect, drawRectangle, draw rectangle, java rechteck zeichnen;), Lektion, Seite 721768
http://www.purl.org/stefan_ram/pub/java_swing_rechtecke_zeichnen ist die kanonische URI dieser Seite.
Stefan Ram

Swing: Rechtecke zeichnen

java.awt.Graphics#drawRect( int, int, int, int )

Die Operation "java.awt.Graphics#drawRect(int,int,int,int)" erwartet als erstes und zweites Argument die x- und y-Koordinate eines zu zeichnenden Rechteckrahmens. (Damit ist die Koordinate des linken oberen Pixels des zu zeichnenden Rechteckrahmens gemeint.) Als drittes und viertes Argumen erwartet sie die Differenz  der x-Koordinaten des rechten und linken Randes bzw. die Differenz  der y-Koordinaten des unteren und des oberen Randes des zu zeichnenden Rechteckrahmens. Diese Differenzen sind Eins weniger  als die Breite bzw. die Höhe: Wenn ein Rechteck beispielsweise eine sichtbare Breite von genau einem Pixel hat, dann ist der Unterschied des rechten Randes zum linken Rand gleich Null, weil sie beide in derselben Pixelspalte sind. Bei einem Rechteckrahmen mit zwei Pixeln Breite wäre die Differenz beispielsweise Eins.

Graphics#drawRect(4,1,0,3)
 0123456789 
0::::::::::  
1::::#::::: Differenz = 4 - 4 = 0  
2::::#::::: Breite = 1  
3::::#::::: 
4::::#::::: 
5::::::::::

Graphics#drawRect(4,1,1,3)
 0123456789 
0::::::::::  
1::::##:::: Differenz = 5 - 4 = 1 
2::::##:::: Breite = 2 
3::::##:::: 
4::::##:::: 
5::::::::::

Graphics#drawRect( 0, 0, 4, 3)
 0123456789 
0#####::::: minimale x-Koordinate = 0 
1#:::#::::: maximale x-Koordinate = 4 
2#:::#::::: Breite = 5 
3#####::::: 
4:::::::::: 
5::::::::::

In der Java -Dokumentation von wird angegeben, die beiden letzten Parameter dieser Methode seinen die Breite  und die Höhe  des zu zeichnenden Rechtecks. (Dies wird zwar im Text dann richtig erklärt, aber als Merkwörter für die Parameter wird trotzdem der Bezeichner "width" und der Bezeichner "height" verwendet.) Diese Information trifft aber so nicht zu, denn an anderer Stelle (z.B. in Zusammenhang mit der Methode "getWidth") verwendet die Dokumentation die Begriffe Breite  und die Höhe  in richtiger Weise (für die Anzahl  waagerechter bzw. senkrechter Pixel), so daß man nicht allgemein sagen kann, diese Wörter würden in der Dokumentation für die Differenz  zwischen Maximum und Minimum stehen. Insofern ist die Dokumentation des Herstellers hier nicht konsistent.

Seiteninformation und Impressum  |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz