Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
150<br />
8 <strong>Das</strong> <strong>SWT</strong><br />
! Im Gegensatz zu dem AWT erfordert das <strong>SWT</strong> eine explizite Ressourcenverwaltung.<br />
So benutzt das <strong>SWT</strong> für Bilder, Farben und<br />
Fonts Betriebssystemressourcen, die, sobald sie nicht mehr benötigt<br />
werden, mit dispose() wieder explizit freigegeben werden sollten.<br />
Wir werden die Ressourcenverwaltung ausführlich in Abschnitt<br />
8.9 diskutieren.<br />
8.3 <strong>Das</strong> Package <strong>SWT</strong><br />
Im Package org.eclipse.swt sind lediglich drei Klassen definiert: <strong>SWT</strong>,<br />
<strong>SWT</strong>Exception und <strong>SWT</strong>Error. Während die beiden letzteren Klassen der<br />
Fehlerbehandlung (abfangbare bzw. nicht abfangbare Ausnahmebedingungen)<br />
dienen, sind in der Klasse <strong>SWT</strong> alle <strong>SWT</strong>-spezifischen Konstanten<br />
zusammengefasst. Dazu gehören Konstanten für die Bezeichnung<br />
von Tasten, für vordefinierte Farben, für Layout-Variationen bei<br />
den Widgets, für Textstile, Cursorvariationen, Mausaktionen, vordefinierte<br />
Knöpfe und anderes.<br />
So bezeichnet z.B. <strong>SWT</strong>.LINE_DASHDOT eine Strich-Punkt-Linie, oder<br />
<strong>SWT</strong>.MouseDoubleClick ein Mausdoppelklick-Ereignis. Wir werden in<br />
den folgenden Beispielen einige dieser Konstanten im Einsatz sehen.<br />
8.4 Ereignisse<br />
Ereignisse bilden den grundlegenden Mechanismus, mit dem Anwendungen<br />
mit dem GUI kommunizieren. Applikationen registrieren<br />
Zuhörerinstanzen (Listener) mit den Widgets, um auf Ereignisse reagieren<br />
zu können. Meistens von Benutzeraktionen wie z.B. Mausklicks<br />
oder Tastaturbetätigungen hervorgerufen, informieren die Ereignisse<br />
über die Listener die Anwendung über die Art der Aktion.<br />
<strong>Das</strong> Package org.eclipse.swt.events enthält drei verschiedene<br />
Gruppen: Listener-Interfaces, Event-Klassen und Adapter-Klassen. Bei<br />
den Ereignissen unterscheiden wir zwischen zwei Kategorien – typisierten<br />
Ereignissen wie ControlEvent oder MouseEvent und generischen<br />
Ereignissen (Event). Entsprechend setzt sich diese Aufteilung auch bei<br />
den Listener-Interfaces fort.<br />
8.4.1 Zuhörer<br />
Für jede Ereignisart gibt es verschiedene Listener-Klassen. So kann<br />
man z.B. einer Taste (Button) mit addSelectionListener() eine SelectionListener-Instanz<br />
hinzufügen. Wird die Taste selektiert (angeklickt),<br />
wird die widgetSelected()-Methode dieser SelectionListe-