Java Reference
In-Depth Information
Hier wird nur die
drawImage
-Methode von
Graphics
aufgerufen. Sie erwartet als Parame-
terwerte die Image-Variable und die Positionskoordinaten der linken oberen Ecke und
Breite und Höhe. Für die Positionsangabe wird der Inhalt von
x
und vertikal die Mitte
des Panels angegeben. Breite und Höhe werden vom Image abgefragt, damit das Bild in
Originalgröße dargestellt wird. Sie können hier auch andere Werte angeben, um das Bild
in ein vorgegebenes Rechteck einzupassen. Der letzte Parameter verweist auf ein
Image-
Observer
-Objekt, das den Aufbereitungsvorgang von Bildern überwacht. Es verfügt
damit immer über alle Bildinformationen. Es handelt sich dabei um einen Nachfolger
von
Component
. Da unser Panel davon abgeleitet ist, kann es hier mit
this
angegeben
werden. Entsprechendes gilt für die Abfragen der Bildgrößen mit
getWidth
und
getHeight
, wo mit
this
das Panel als ImageObserver angegeben wird.
Nun bleibt noch die
run
-Methode, auf die dann der Thread zurückgreifen wird. Sie sorgt
dafür, dass die
paintComponent
-Methode für die Zeichenvorgänge ständig neue Posi-
tionskoordinaten erhält. Da wir die Bewegung rein in x-Richtung vorsehen, bleibt die
y-Koordinate unverändert die Mitte des Panels.
public void run() {
while (true) {
synchronized (this) {
if (x > getWidth() - img.getWidth(this)) {
vor = false;
}elseif(x<=0)
vor = true;
if (vor) {
x+=2;
}else{
X-=2;
}
}
repaint();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
break;
}
}
}
Listing 14.13
run()-Methode zur Aktualisierung der x-Koordinate