Artikel

 
August 2009 | Artikel

Mehr Substanz für NetBeans

(Link zum Artikel: http://www.it-republik.de/jaxenter/artikel/2518)

Das Substance-Look-and-Feel für NetBeans

Text: Aljoscha Rittner
Schon einmal gab es für die NetBeans-IDE und NetBeans-Plattform ein Plug-in, um Substance, die Bibliothek für Swing-Oberflächen, einfach zu integrieren. Gerade weil NetBeans eine pure Swing-Anwendung ist, sollte ein Pluggable Look and Feel (PLAF), wie es Substance ist, eigentlich problemlos mit NetBeans zusammenarbeiten. Doch der Support für dieses Plug-in wurde leider eingestellt. Dieser Artikel beschreibt den Weg, den der Autor bei der Entwicklung seines eigenen Substance-5.2-Support-Plug-ins für NetBeans gegangen ist.
Teil 1   Teil 2   Teil 3   

NetBeans bietet schon von Haus aus eine Option, um beliebige PLAFs per Aufrufparameter zu integrieren. So genügt es, den Parameter --laf Metal zu verwenden, um das schon in die Jahre gekommene Metal-PLAF der Java-Umgebung zu aktivieren. Möchte man das moderne Nimbus Look and Feel aktivieren, genügt ein --laf Nimbus. Eine vollständige Liste der bekannten PLAF-Namen findet sich im NetBeans Wiki.

Aber auch Look and Feels anderer Anbieter kann man so integrieren. Mit der Angabe des Pfads zu einem Java-Archiv und dem voll qualifizierten Klassennamen ist es ein Kinderspiel, Look and Feels von anderen Bibliotheken einzubinden:

  1. netbeans.exe --cp:p C:\looks-1.2.2.jar --laf
  2. com.jgoodies.plaf.plastic.PlasticXPLookAndFeel

Übrigens bietet auch das NetBeans-Wiki eine Hilfe für benutzerdefinierte PLAFs an.

Substance als Plug-in
Das Substance-Team hatte ursprünglich schon selbst ein Plug-in geschrieben, um das Look and Feel einfacher für den Endanwender in NetBeans zu integrieren. Der Support für das Plug-in wurde aber eingestellt. Die Gründe für das Beenden der Unterstützung werden in einem Blog beschrieben:

The development of this module was greatly facilitated in the beginning by Tim Boudreau, but unfortunately was met with less than lukewarm support from the NetBeans team (see comments on issue 66335 and issue 67463). A little over a year ago this module has been broken by the changes scheduled to appear in NetBeans 6.0, but those changes had been rolled back a month later, making the module usable once again. However, the core NetBeans code has not evolved to make it more friendly to third-party look-and-feels, and the development of Substance module has not been as productive and fulfilling as it could have been (as indeed was the case with SwingX).

Tatsächlich waren die größten Probleme die Unterstützung von UI-Delegates in der NetBeans-API für Swing-Komponenten. Insbesondere die Tab-Darstellung aller angedockten Fenster und Dokumente bereitete den Substance-Entwicklern keine Freude. UI-Delegates werden benötigt, um Swing-Komponenten einer Anwendung, die nicht aus dem Standard heraus kommen, trotzdem mit dem PLAF zu erweitern oder gar auszutauschen. Auch NetBeans verwendet intern für die Tab-Darstellung ein UI-Delegate. Allerdings wurde die Klasse im Modulsystem als "package private" deklariert und ist somit von externen Plug-ins nicht zu erreichen. Eine Veröffentlichung der API war nicht geplant.

Aber auch ohne eine Freigabe der UI-Delegates in einer öffentlichen API wäre es möglich, Substance als Look and Feel zu integrieren. Der Anwender müsste nur mit den "hässlichen" Standard-Tabs leben.

Teil 1   Teil 2   Teil 3   

Anzeige

Kommentare


Anzeige

zurück zum Seitenanfang
X