Java Reference
In-Depth Information
komplexe Zeichnungen in Bewegung versetzen. Sie können das hier verwendete Bild
Ball.jpg
von der DVD verwenden oder auch selbst eine andere Zeichnung erstellen.
Leiten Sie zuerst eine neue Klasse
JBallPanel
von der Klasse
JPanel
ab. Da wir für die
Animation wieder einen Thread anlegen müssen, erweitern Sie die Kopfzeile um das
Implementieren von
Runnable
, und erweitern Sie die Eigenschaften um
public int x=0;
private Image img;
private boolean vor=true;
Listing 14.10
Attribute der Klasse »JBallPanel«
Die Eigenschaften legen den Anfangszustand fest. Die Eigenschaft
x
beschreibt die aktu-
elle Position des Balls (bei Programmstart ganz links im Panel). Das zu ladende Bild wird
in der Image-Variablen
img
abgelegt und der Boolesche Wert
vor
beschreibt die aktuelle
Bewegungsrichtung (
true
steht für »von links nach rechts«). Überschreiben Sie den
Konstruktor so, dass er die gleiche Hintergrundfarbe für das Panel verwendet, wie sie im
Bild verwendet wurde. Im Fall der Datei
Ball.jpg
ist das die Farbe Weiß. Als zweite Anwei-
sung wird das Bild aus der Datei in die Image-Variable eingelesen. Hier wird die
Methode
getImage
der Komponente
Toolkit
verwendet.
14
JBallPanel() {
super();
setBackground(Color.white);
img = Toolkit.getDefaultToolkit().getImage(
"." + File.separator + "Ball.jpg" );
}
Listing 14.11
Überschriebener Konstruktor der Klasse »JBallPanel«
Die Methode
paintComponent
muss überschrieben werden, damit auf dem Panel unser
Bild gezeichnet wird:
public synchronized void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, x,
getHeight()/2-img.getHeight(this)/2,
img.getWidth(this), img.getHeight(this), this);
}
Listing 14.12
Überschriebene Methode »paintComponent«