TabbedPreviewPainter
Mit dem TabbedPreviewPainter liegt Substance ein weiterer spezieller und vor allem beeindruckender Painter bei, mit dem sich kleine Vorschaufenster auf Tabbed Panes anzeigen lassen. Das sieht dann ganz ähnlich den Vorschaufenstern aus, die man von Windows Vista kennt, wenn man mit der Maus einen Moment lang auf einem Symbol in der Taskleiste verweilt. Abbildung 3 zeigt den TabbedPreviewPainter in Aktion: Bleibt man mit der Maus einen kurzen Moment auf dem ersten Tab stehen, erscheint ein Vorschaubild des Tabs. Klickt man auf die Lupe ganz links (auch diese wurde von dem Painter gezeichnet), dann öffnet sich ein separates Fenster, in dem alle Tabs als Vorschaubild dargestellt werden. Klickt der Benutzer auf eines dieser Vorschaubilder, wird der entsprechende Tab geöffnet.
Interessant an dieser Stelle ist, dass dieses Feature mit nur einer einzigen Zeile Code aktiviert werden kann! Hierzu ist nämlich lediglich auf dem Tabbed Pane, das die Vorschaufunktionalität enthalten soll, folgende Client-Property zu setzen:
myTabbedPane.putClientProperty(LafWidget.TABBED_PANE_PREVIEW_PAINTER, new DefaultTabPreviewPainter()).
Plug-ins
Substance ist darauf ausgerichtet, möglichst gut mit den bestehenden Komponenten aus der Swing-Suite zusammenzuarbeiten. Speziell für Swing existieren jedoch eine ganze Reihe Erweiterungen von Drittanbietern, mit denen der Funktionsumfang von Swing deutlich aufgestockt werden kann. Damit diese Erweiterungen auch mit Substance zusammenspielen, haben die Entwickler eine offene Schnittstelle (Plug-in-Konzept) realisiert, mit der es möglich ist, externe Swing-Erweiterungen optimal an Substance anzubinden. Das bereits erwähnte Substance Extras Pack [5] ist ein Beispiel für ein solches Plug-in. Als separaten Download bieten die Entwickler auch noch Plug-ins für folgende Komponentenbibliotheken an:
- Flamingo [6]
- SwingX [7]
- JIDE common [8]
Fazit
Dieser Artikel hat das Substance Look And Feel vorgestellt und gezeigt, welche enorme Möglichkeiten in dieser umfangreichen Bibliothek stecken. So bringt Substance bereits von Haus aus vierundzwanzig ansprechende LAFs mit, die out-of-the-box in eigenen Swing-Anwendungen verwendet werden können. Darüber hinaus stellt Substance selbst ein mächtiges Framework dar, mit dem sich bestehende Skins leicht verändern oder ganz neue LAFs programmieren lassen. Eine offene Schnittstelle bietet zudem die Möglichkeit, Drittanbieterbibliotheken mit Substance in Einklang zu bringen. Insbesondere das Plug-in zur Flamingo-Komponentenbibliothek ist einen näheren Blick wert, denn durch die Kombination von den in Substance mitgelieferten Office2007-Skins und der Ribbon-Komponente aus dem Flamingo-Projekt lassen sich bereits heute Anwendungen bauen, die den aktuellen Office- und Windows 7-Produkten zumindest designtechnisch in nichts nachstehen.
Marc Teufel arbeitet als Software-Entwickler bei der hama GmbH & Co und ist dort für die Entwicklung großer Java-Anwendungen im Logistikzentrum zuständig. Er ist Autor zahlreicher Fachartikel zu Java und .NET, hat zwei Bücher zu Web Services publiziert und spricht regelmäßig auf Fachkonferenzen. Unter www.teufel.net ist er im Web zu erreichen. 













