Translate this page...

BeanDev: GUI Beans, der BeanInfo Editor

Im vorherigen Teil habe ich eine Bean-Klasse erstellt, die zwei zusätzliche Eigenschaften zu einem JPanel hinzufügt. Zum einem Appearance (Darstellung) und backgroundImage (Hintergrundbild). 

In diesem Teil möchte ich den BeanInfo-Editor verwenden, um diese Eigenschaften in gewünschter Form in NetBeans darzustellen und vor allem viele andere Properties (von JPanel) abschalten.

Zunächst wähle ich die JImagePanel-Klasse im Explorer aus, rechte Maustaste und rufe im Kontextmenü den "BeanInfo Editor..." auf. Da noch keine BeanInfo-Klasse exisitiert, fragt NetBeans noch höflich nach, ob diese Klasse erzeugt werden soll. Das bestätige ich und erhalte damit eine wirklich monströs große Klasse mit dem Namen JImagePanelBeanInfo. Im BeanInfo-Editor habe ich zwei Views zur Verfügung: Source und Designer. Source zeigt mir den Java-Quelltext und Designer eine hierarchische Darstellung von Properties, Event Sources und Methods. Natürlich auch alle Elemente aus JPanel und den Superklassen. Zwischen den ganzen Properties verstecken sich auch die neuen Eigenschaften appearance und backgroundImange.

Um die spätere Darstellung der Eigenschaften im NetBeans-GUI-Designer übersichtlich zu halten, deaktiviere ich einfach erstmal alle Properties und Methods. Also alle Property-Knoten markieren, rechte Maustaste -> "Toggle Include". Das selbe mit den Methoden durchführen. 

Wenn man nun speichert und in die Source-Ansicht wechselt, sieht man, dass der Quelltext doch deutlich kürzer geworden ist. Zurück in der Design-Ansicht markiere ich in der Kategorie Properties die Eigenschaften appearance, backgroundImage und border -> rechte Maustaste -> "Toggle Include".

Damit sollten nur noch die drei Eigenschaften und alle Ereignisse (Event Source) aktiviert sein.

Jetzt kommt die Stunde der Wahrheit. Vom Projekt ein Clean&Build machen. Mit der rechten Maustaste auf JImagePanel klicken -> Tools -> Add to Palette... In dem Dialog nun die Beans-Kategorie auswählen (so finden wir unser Bean einfacher wieder).

Nun erzeuge ich ein neue JFrame zum testen. Strg+N -> Kategorie "Swing GUI Forms" -> JFrame Form.

Der Designer öffnet sich auch sofort und aus der Palette ziehe ich (aus der Kategorie Beans) mein persönliches JImagePanel-Bean. Und wie man am Eigenschaftsfenster sieht, werden nur drei Properties angezeigt. So wie ich das im BeanInfo-Editor festgelegt hatte.

Für das Property "border" gibt es schon einen schönen Editor, den ich über den Button [...] aufrufen kann. Für appearance und backgroundImage sieht die Sache noch etwas Mau aus.

Im dritten Teil zeige ich, wie man für die zwei neuen Eigenschaften eigene Editoren hinterlegen kann.


Teil 1 | -> Teil 2 | Teil 3 | Teil 4


http://www.netbeans-forum.de/ Da werden Sie geholfen:
Das deutsche NetBeans Forum

      NetBeans Dream Team Member

3 Antworten to “BeanDev: GUI Beans, der BeanInfo Editor”

  1. Christian schreibt:

    Danke Joch, sowas habe ich mir schon gedacht.

    mfg
    christian

  2. Aljoscha Rittner schreibt:

    Moin!

    Die Properties werden in NetBeans immer nach dem Namen sortiert. Ich kenne z.Z. keine Methode das zu ändern.

    Grundsätzlich ist die Property-Implementation aber so ausgelegt, dass Properties in einer festen Reihenfolge aufgebaut werden können (soweit man die put-Methoden in der richtigen Reihenfolge aufruft). Um das auszunutzen, müsste man aber sowieso ein echtes NetBeans-Plugin schreiben. Über das "normale" JavaBean - Verhalten, die für Endanwender der IDE zur Verfügung steht, hat man da kaum eine Möglichkeit das zu steuern.

    Es gäbe da nur die Möglichkeit für Dich einige Properties in den Expert-Bereich zu verschieben.

    Beste Grüße,
    Josch.

  3. Christian schreibt:

    Hallo Josch!

    Danke für deinen sehr informativen Beitrag!

    Gibt es eine Möglichkeit im BeansInfo Editor die Properties zu sortieren?

    Ich habe eine Bean mit den Properties description, icon und title.
    Diese sollten in der Reihenfolge title, description und icon im Property Editor der IDE erscheinen.

    Im Moment werden sie einfach alphabetisch sortiert, kann man das
    überschreiben?

    mfg
    christian

Hinterlasse eine Nachricht

Meine Informationen merken

CAPTCHA Bild zum Spamschutz 

[Valid RSS]