Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
208<br />
8 <strong>Das</strong> <strong>SWT</strong><br />
}<br />
}<br />
});<br />
size.y);<br />
// Shell öffnen<br />
eShell.open();<br />
} else if (!eShell.isVisible()) {<br />
// Editor versteckt, sichtbar machen<br />
eShell.setVisible(true);<br />
} else {<br />
// Editor sichtbar - Text holen<br />
String t = eText.getText();<br />
// und Editor unsichtbar machen<br />
eShell.setVisible(false);<br />
// Text zur Liste zufügen und Canvas neu zeichnen.<br />
wordList.add(t);<br />
canvasComp.redraw();<br />
}<br />
public void mouseReleased(<br />
java.awt.event.MouseEvent e) {}<br />
});<br />
Schließlich zeigen wir noch die Routine für das Zeichnen des Canvas-<br />
Inhaltes. Dies geschieht in einem PaintListener, der dem <strong>SWT</strong>-Container<br />
des Canvas zugeordnet ist. Wir setzen Java2D-Textrotation ein,<br />
um den eingegebenen Text sternförmig anzuordnen. Da es sich bei den<br />
verwendeten Ressourcen (Color, Font) um AWT-Ressourcen handelt,<br />
müssen diese auch nicht wie im <strong>SWT</strong> nach der Verwendung mit dispose()<br />
entsorgt werden. Die Java Garbage Collection wird sich schon<br />
darum kümmern.<br />
// Den Canvas neu zeichnen<br />
canvasComp.addPaintListener(new PaintListener() {<br />
public void paintControl(PaintEvent e) {<br />
// Die Verarbeitung der AWT-Event-Warteschlange übergeben<br />
java.awt.EventQueue.invokeLater(new Runnable() {<br />
public void run() {<br />
// Canvasmittelpunkt<br />
java.awt.Rectangle bounds = canvas.getBounds();<br />
int originX = bounds.width / 2;<br />
int originY = bounds.height / 2;<br />
// Canvas rücksetzen<br />
g2d.setTransform(origTransform);<br />
g2d.setColor(java.awt.Color.WHITE);<br />
g2d.fillRect(0, 0, bounds.width, bounds.height);