BeanInfo

Hallo wwwler,

mit Introspector.getBeanInfo(class) kann ich mir eine Instanz der Klasse BeanInfo zu einer entsprechenden Klasse holen.
Aber BeanInfo ist doch nur ein Interface. Wo ist dieses BeanInfo implementiert? Kann mir das jemand sagen?

Gruß
Jochen

Hallo wwwler,

mit Introspector.getBeanInfo(class) kann ich mir eine Instanz
der Klasse BeanInfo zu einer entsprechenden Klasse holen.
Aber BeanInfo ist doch nur ein Interface. Wo ist dieses
BeanInfo implementiert? Kann mir das jemand sagen?

Die Klasse Introspector und die Methode getBeanInfo kümmert sich um die korrekte instantiierung dieses Interfaces.

Man nutzt diesen „Trick“, wenn man eine Art „Schablone“ oder „Lochraster“ auf ein sehr komplexes Objekt „legen“ möchte und somit die komplexen (und i.d.R. für den Applikationsentwickler gar nicht relevanten) Teilaspekte verdecken möchte. Insbesondere kann man quasi dynamisch jeweils an die Situtation gefertigtes Verhalten instantiieren.

Das ist alles etwas schwammig ausgedrückt. Wenn Du mehr Details wissen willst (insbesondere wie es denn nun wirklich gemacht wird), dann schau in Dein JDK-Verzeichniss. I.d.R. gibt es dort ein src.jar in der der Quellcode abgelegt ist. Auspacken und reinschauen. Hilft sehr zum Verständnis.

Gruss,
Frank

Hallo Frank,

erstmal danke für deine Antwort. Ich hab im Netz schon einige Zeit zu diesem Thema rumgesucht, aber irgendwie hab ich da ein Verständnisproblem. Ich arbeite zur Zeit an dem Beanbuilder von Sun (GUI-Entwicklungstool). Da gibt es wie in jedem solchen Tool eine Toolbar, in der die verfügbaren Komponenten angezeigt werden. Alle mit ihrem Icon.

Mein Problem: Woher wissen die Komponenten, welches Icon zu ihnen gehört? Meines Wissens funktioniert die Sache mit dem Introspector folgendermaßen:
Die Methode getBeanInfo(Class) schaut zuerst nach, ob es eine Klasse gibt mit dem Namen ClassBeanInfo, wobei für Class natürlich der Name der jeweiligen Komponente eingesetzt wird. Existiert keine solche Klasse, wird die ‚LowLevel-Methode‘ angewandt um die vorhandenen Methoden, Events und sonstige Informationen zu ermitteln. Aber die Methode getIcon der Klasse BeanInfo steht meines Wissens nur zur Verfügung, wenn auch eine Klasse ClassBeanInfo existiert. Oder hab ich da was falsch verstanden? Dann müßte es doch z.B. eine Klasse JButtonBeanInfo geben. Die gibts aber nicht!
Die Icons liegen in der Datei dt.jar im lib-Verzeichnis des JDK. Aber wie sind diese Icons mit den jeweiligen Komponenten verbunden?

So, daß war jetzt genug Text.

Gruß
Jochen

Hallo Frank,

erstmal danke für deine Antwort. Ich hab im Netz schon einige
Zeit zu diesem Thema rumgesucht, aber irgendwie hab ich da ein
Verständnisproblem.

[ganz viel gelöscht]

Hallo Jochen,

hundertprozentig kenn ich mich mit dem Bean-Customizing nicht aus. Ich weiß nur wie man ein Bean zu schreiben hat, jedoch nicht genau was man noch tun muß, damit es in einer Entwicklungsumgebung wie zum Beispiel JBuilder etc. in der Toolbar genutzt werden kann.
Ich würde dazu unter http://java.sun.com/docs/books/tutorial/javabeans/in… nachschauen.

Vielleicht hilft es.

Gruss,
Frank