16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

button.setToolTipText(hilfe);<br />

frame.getContentPane().add(button);<br />

frame.setSize(250, 250);<br />

frame.show();<br />

}<br />

}<br />

Abb.: Tooltip-Demonstration<br />

Bildschirmdarstellung <strong>de</strong>r Komponenten<br />

Normalerweise braucht e<strong>in</strong>e GUI-Anwendung sich um die konkrete Darstellung nicht<br />

zu kümmern. Das än<strong>de</strong>rt sich, wenn e<strong>in</strong>e eigene Komponente entwickelt wer<strong>de</strong>n soll.<br />

Bei AWT-Anwendungen wur<strong>de</strong> dies aus Canvas abgeleitet, <strong>in</strong> überlagerten Varianten<br />

von pa<strong>in</strong>t() o<strong>de</strong>r update() wur<strong>de</strong> die nötige Bildschirmausgabe bereit gestellt.<br />

Die Metho<strong>de</strong> pa<strong>in</strong>t() hat <strong>in</strong> JComponent e<strong>in</strong>e recht aufwendige Implementierung<br />

und wird normalerweise nicht mehr überlagert. Im Pr<strong>in</strong>zip ruft sie nache<strong>in</strong>an<strong>de</strong>r ihre<br />

Metho<strong>de</strong>n pa<strong>in</strong>tComponent(), pa<strong>in</strong>tBor<strong>de</strong>r() (Zeichnen <strong>de</strong>r Umrandung) und<br />

pa<strong>in</strong>tChildren() (Zeichnen <strong>de</strong>r Dialogelemente) auf. Für die Darstellung <strong>de</strong>r<br />

eigenen Komponenten ist<br />

protected void pa<strong>in</strong>tComponent(Graphics g)<br />

zuständig. In JComponent wird je<strong>de</strong>r Aufruf von pa<strong>in</strong>tComponent() an das<br />

ComponentUI <strong>de</strong>legiert. Je<strong>de</strong> Sw<strong>in</strong>g-Komponente besitzt e<strong>in</strong> ComponentUI, das je<br />

Look and Feel unterschiedlich se<strong>in</strong> kann. E<strong>in</strong>e selbst<strong>de</strong>f<strong>in</strong>ierte Komponente muß also<br />

entwe<strong>de</strong>r für je<strong>de</strong>s Look and Feel e<strong>in</strong> passen<strong>de</strong>s ComponentUI zur Verfügung<br />

stellen o<strong>de</strong>r die Bildschirmdarstellung durch Überlagern von pa<strong>in</strong>tComponent()<br />

selbst erledigen.<br />

Doppelpufferung<br />

Sw<strong>in</strong>g-Komponenten, die aus JComponent abgeleitet s<strong>in</strong>d, können automatisch<br />

doppelgepuffert wer<strong>de</strong>n. Dazu ist lediglich <strong>de</strong>r Aufruf von<br />

public void setDoubleBuffered(boolean e<strong>in</strong>Flag)<br />

mit Übergabe von "true" erfor<strong>de</strong>rlich. Mit<br />

359

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!