23.10 Die
Zeichenfläche für ein Button |
|
Eigene Zeichenfläche | Wir
fügten unserem Button eine Zeichenfläche zu, die das übergebene Bild
aufnimmt. Unser Panel, wir nenne es
ButtonPanel,
erbt von JPanel.
|
Download: ButtonPanel.java |
|
Polymorphie | An der
Parameterliste des Konstruktors erkennt man, dass zur Anlage eines
Objektes von ButtonPanel
ein Objekt des Typs Image
erwartet wird. Die Methode
paintComponent(Graphics g) wird
automatisch aufgerufen, wenn sich an der grafischen Darstellung etwas
geändert hat. Im ersten Moment denkt man, dass ein erneutes Zeichnen nicht
nötig ist. Nun kann aber unser Fenster von einem Fenster einer anderen
Anwendung kurzfristig überdeckt werden, so dass ein Wiederaufdecken das
Neuzeichnen nötig wmacht. Das alles wird komfortabel in der Methode
paintComponent(Graphics g)wie
sie in der Klasse JComponent
implementiert vor liegt, organisiert. Unsere Klasse
ButtonPanel
erbt diese Methode über JPanel
von JComponent.
Die geerbte Methode
paintComponent(Graphics g) soll
um das Hinzufügen des Bildes -
g.drawImage(bild,0,0,this)-
erweitert werden. Da wir aber jetzt im Begriff sind, diese Methode
zu überschreiben, würden wir die ganze Funktionalität von
paintComponent(Grahics g)
verlieren, wenn wir nicht die unverfälschte Methode mit
super.paintComponent(Graphics g)
aufrufen würden. Mit
super
haben wir eine Referenz auf die Superklasse, also die Klasse, von der
unsere Klasse direkt erbt also
JPanel. Damit haben wir die
alte Methode in ihrer Funktionalität erweitert. Das hat zur Folge, dass
das was die Methode
paintComponent(Grahics g)
leistet, von ihrem Kontext ab. Wir sprechen in diesem Zusammenhang von
Polymorphie. |
Klassen- hierarchie |
![]() |
Wiederver- wendbarkeit |
Die
Klasse ButtonPanel
ist so angelegt, dass sie nicht nur für das Button
CaesarButton,
sondern für jedes andere selbst geschrieben Button verwendet werden kann,
um dieses mit einem Bild zu versehen. |
Zusammenstel- lung aller nötigen Klassen |
Dateien,
des Projektes:
Alle Klassen müssen in einem gemeinsamen Verzeichnis liegen.
Nach dem dem Drücken des Verschlüsselungsbuttons (Positivbild) Nach dem dem Drücken des Entschlüsselungsbuttons (Negativbild)
|
zu | 23.11 Übungen |
zur Startseite | www.pohlig.de (C) MPohlig 2004 |