20.08.2012 Aufrufe

8 Das SWT

8 Das SWT

8 Das SWT

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

8.7.2 Farben<br />

8.7 Grafik<br />

In einem Grafikkontext setzt man Linien- und Textfarben – wie oben<br />

gezeigt – mit Hilfe der Methode setForeground(). Füllfarben werden<br />

mit setBackground() gesetzt.<br />

Dazu muss man sich allerdings erst einmal Farbobjekte besorgen.<br />

<strong>Das</strong> kann auf zwei verschiedene Arten erfolgen:<br />

! Man holt sich eine Systemfarbe von einer Device-Instanz. Da Display<br />

eine Unterklasse von Device ist, können wir eine Systemfarbe<br />

mit Hilfe der Methode getSystemColor() von der Display-Instanz<br />

eines Widgets holen. Die dazu notwendigen COLOR_...-Konstanten<br />

sind in der Klasse <strong>SWT</strong> definiert.<br />

Farbobjekte, die man sich auf diese oder andere Weise von anderen<br />

Instanzen holt, dürfen nicht mit dispose() freigegeben werden,<br />

denn sie werden eventuell noch anderenorts benötigt!<br />

! Man fertigt Farbobjekte selbst an, z.B.<br />

Color red = new Color(device, 255,0,0)<br />

oder<br />

Color blue = new Color(device, new RGB(0,255,0));<br />

Der Parameter device muss dabei vom Typ Device sein. RGB ist eine<br />

geräteunabhängige Klasse zur Darstellung von RGB-Farbtupeln.<br />

Auf Ausgabegeräten mit 24 Bit Farbtiefe ist die Farbdarstellung<br />

exakt, bei Ausgabegeräten mit geringerer Farbtiefe wird die Farbe<br />

von Eclipse so gut wie möglich angenähert [Moody2001].<br />

Solch selbst angefertigte Farbobjekte müssen mit dispose() wieder<br />

entsorgt werden, wenn sie nicht mehr gebraucht werden.<br />

8.7.3 Schriftarten<br />

Ähnlich wie mit Farben verhält es sich auch mit Fonts. Der aktuelle<br />

Font wird im Grafikkontext mit setFont() gesetzt.<br />

! Den aktuellen Systemfont kann man sich von einer Device-Instanz<br />

mit Hilfe der Methode getSystemFont() holen. Einen solchen Font<br />

darf man nicht mit dispose() entsorgen.<br />

! Neue Font-Instanzen können mit Hilfe eines Konstruktors erzeugt<br />

werden, z.B.<br />

Font font = new Font(device,"Arial",12,<strong>SWT</strong>.ITALIC)<br />

oder<br />

Font font = new Font(device,new FontData("Arial",12,<strong>SWT</strong>.ITALIC))<br />

FontData ist eine geräteunabhängige Repräsentation einer Schriftart.<br />

Font-Instanzen müssen mit dispose() wieder entsorgt werden,<br />

wenn sie nicht mehr gebraucht werden.<br />

199

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!