Java Reference
In-Depth Information
Die beiden Punkte müssen nicht innerhalb der zu füllenden Fläche liegen. Über einen
fünften Booleschen Parameter kann festgelegt werden, ob sich der Farbwechsel wieder-
holen soll, wenn die Ausdehnung der zu füllenden Fläche in Richtung des Farbverlaufs
größer ist als ein Übergang erfordert.
Sie finden unter dem Namen
Zeichnen3
auf der beiliegenden DVD im Ordner
Arbeitsumgebung\Java\Programme\JavaUebung13
eine Version des Zeichenpro-
gramms
Zeichnen2
, das die Klasse
Graphics
durch die Klasse
Graphics2D
mit ihren Zei-
chenmethoden ersetzt.
13.2.5
Eine lernfähige paint-Methode
Es ist an der Zeit, Sie auf einen ganz gravierenden Unterschied zwischen den beiden Pro-
grammen
Zeichnen1
und
Zeichnen2
bzw.
Zeichnen3
hinzuweisen. Vielleicht ist es Ihnen
ja auch schon selbst aufgefallen, dass die Beständigkeit der gezeichneten Objekte in den
beiden Anwendungen nicht gleich ist. Falls es Ihnen noch nicht aufgefallen ist, dann
sollten Sie jetzt einmal das Programm
Zeichnen1
starten und anschließend das Pro-
grammfenster beliebig vergrößern und verkleinern. Oder Sie minimieren das Pro-
grammfenster, um es anschließend wieder von der Taskleiste auf den Bildschirm zu
holen. Das Verhalten des Panels wird Sie wahrscheinlich nicht überraschen. Wiederho-
len Sie nun das Gleiche mit dem Programm
Zeichnen2
oder
Zeichnen3
, nachdem Sie
einige Objekte in das Panel gezeichnet haben.
13
Falls Sie nicht schon früher über dieses Verhalten gestolpert sind, wird es Sie überra-
schen, dass die Zeichnungen durch das Verändern der Größe des Programmfensters
verschwinden. Für ein Zeichenprogramm ist dieses Verhalten absolut inakzeptabel. Es
stellen sich nun drei zentrale Fragen: Gibt es überhaupt Programme, für die ein solches
Verhalten kein Problem darstellt? Wie ist dieses Verhalten des Programms
Zeichnen2
zu
erklären? Und wie können die gezeichneten Figuren dauerhaft erhalten werden?
Die erste Frage ist eindeutig mit ja zu beantworten. Es gibt durchaus Programme, die die
gezeichneten Figuren nicht erhalten müssen! Stellen Sie sich ein Programm vor, das,
ähnlich wie bei einem Video, einen mehrmals pro Sekunde sich verändernden Inhalt
darstellen soll. In diesem Fall müssen die gezeichneten Inhalte nicht dauerhaft erhalten
bleiben.
Die Antwort auf die zweite Frage wurde durch die Erläuterungen in
Abschnitt 13.1.1
,
»Grundlagen der Grafikausgabe«, bereits gegeben. Der Inhalt einer Komponente muss
in vielen Situationen neu gezeichnet werden. Für dieses Zeichnen sind die Methoden
paint
bzw.
paintComponent
verantwortlich. Beim Neuzeichnen einer Komponente wird
nur das gezeichnet, was in diesen beiden Methoden hinterlegt ist. Die beiden Methoden