20.08.2012 Aufrufe

8 Das SWT

8 Das SWT

8 Das SWT

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.

206<br />

8 <strong>Das</strong> <strong>SWT</strong><br />

Grafikkontext wieder auf den Grundzustand zurückbringen zu können.<br />

Außerdem schalten wir die Kantenglättung ein – eine weitere<br />

Schönheit von Java2D.<br />

// AWT-Frame für Canvas erzeugen<br />

java.awt.Frame canvasFrame = <strong>SWT</strong>_AWT<br />

.new_Frame(canvasComp);<br />

// Canvas erzeugen und zufügen<br />

final java.awt.Canvas canvas = new java.awt.Canvas();<br />

canvasFrame.add(canvas);<br />

// Graphischen Kontext holen und in Java2D-Kontext umwandeln<br />

final java.awt.Graphics2D g2d = (java.awt.Graphics2D) canvas<br />

.getGraphics();<br />

// Kantenglättung einschalten<br />

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,<br />

RenderingHints.VALUE_ANTIALIAS_ON);<br />

// Ursprüngliche Transformation merken<br />

final java.awt.geom.AffineTransform origTransform = g2d<br />

.getTransform();<br />

Nun erzeugen wir die Löschtaste. In ihrer Ereignisverarbeitung wird<br />

ein Neuzeichnen des Canvas veranlasst, und zwar durch den Aufruf<br />

der redraw()-Methode für das <strong>SWT</strong>-Container-Composite.<br />

// Clear-Taste anlegen und positionieren<br />

Button clearButton = new Button(shell, <strong>SWT</strong>.PUSH);<br />

clearButton.setText("Clear");<br />

data = new GridData();<br />

data.horizontalAlignment = GridData.CENTER;<br />

clearButton.setLayoutData(data);<br />

// Ereignisverarbeitung für Taste<br />

clearButton<br />

.addSelectionListener(new SelectionAdapter() {<br />

public void widgetSelected(SelectionEvent e) {<br />

// Wortliste löschen und Canvas neu zeichnen<br />

wordList.clear();<br />

canvasComp.redraw();<br />

}<br />

});<br />

Bei einem Mausklick auf den Canvas (hier befinden wir uns also in der<br />

AWT-Ereignisverarbeitung) wird das Texteingabefeld wechselweise<br />

sichtbar oder unsichtbar geschaltet. Nur bei der allerersten Benutzung<br />

wird dieser kleine Editor neu erzeugt. Da AWT-Canvassen natürlich<br />

keine <strong>SWT</strong>-Widgets zugefügt werden können, erzeugen wir diesen Editor<br />

in einer eigenen Shell. Wichtig ist, diese Shell nicht-modal anzule-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!