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