Java Reference
In-Depth Information
jTFPositiony2.setVisible(true);
figur = 'L';
}
Listing 13.4
ActionListener-Methode von »jRBtnLinie«
In der
char
-Variablen
figur
wird durch Zuweisung des Anfangsbuchstabens festgehal-
ten, welche geometrische Figur aktuell ausgewählt ist. Sie liefert das Auswahlkriterium
für eine
switch-case
-Anweisung in der Zeichenmethode.
13.2.3
Auf das JPanel zeichnen
Nach diesen Vorarbeiten können Sie sich nun dem Kern der Aufgabe stellen und auf
einer Standardkomponente zeichnen. Im Beispielprogramm wurde ein
JPanel
mit der
Bezeichnung
jPanelZeichenflaeche
als Zeichenunterlage eingebaut. In den GUI Pro-
perties können Sie zuerst die Hintergrundfarbe über die Eigenschaft
background
ein-
stellen. Ich bevorzuge hier Weiß mit den RGB-Werten 255, 255, 255.
Sie haben im
Abschnitt 13.1.2
, »Panel-Komponente mit verändertem Aussehen«, erfah-
ren, dass die Zeichenmethoden durch eine
Graphics
-Komponente zur Verfügung
gestellt werden. Was Sie nun benötigen, ist eben die
Graphics
-Komponente, die für die
Komponente zuständig ist, auf der gezeichnet werden soll. Jede Komponente stammt
von der Klasse
Component
ab. Und diese Klasse vererbt allen Nachfahren die Methode
getGraphics()
. Sie erstellt beim ersten Zeichnen einer Komponente den erforderlichen
Kontext und liefert die Referenz darauf zurück, ähnlich wie Sie es in
Abschnitt 13.2.1
,
»JCheckbox, JRadioButton und ButtonGroup«, für die
ButtonGroup
kennengelernt
haben. Existiert
Graphics
bereits, liefert die Methode nur die Referenz darauf zurück.
Sie können sich also mit Hilfe der Methode
getGraphics()
den jeweiligen Kontext für
das Zeichnen auf einer Komponente besorgen. Damit ist es ein Leichtes, auf der Kompo-
nente zu zeichnen. Ein Aufruf der Form
jPanelZeichenflaeche.getGraphics().drawLine(x1, y1, x2, y2);
zeichnet z. B. eine Linie auf das Panel, das als Zeichenfläche dient. Die mit der Schaltflä-
che Zeichnen ausgelöste Zeichenmethode muss eigentlich nur noch unterscheiden,
welche geometrische Figur gezeichnet werden soll und wie die Parameter zugeordnet
werden müssen.