# Netbeans: Java Klasse in GUI Builder verwenden



## miketech (14. Nov 2007)

Hi zusammen,

ich möchte gerne im GUI Builder von Netbeans für das Binding an eine Tabelle eine von mir erstellte Klasse verwenden. Das Problem ist, dass ich in den Auswahldialogen nur Klassen verwenden kann, die ich auch im GUI Builder auf die Form gezogen habe. Mit normalen Klassen geht das leider nicht. 

Bzw: Gestern habe ich es mal mit einem Nightly Build hinbekommen, da konnte ich die Klasse einfach auf die Form ziehen und dann darauf auch zugreifen. Heute gabs dann einen Fehler und ging auch nicht mehr. Dann habe ich den RC1 installiert, hilft nichts. Wie habe ich das dann hinbekommen? 

Weiß jemand wie sowas funktioniert? Muss ich die Klasse erst meiner Palette hinzufügen? Falls ja: Wie mach ich das? Ich weiß nur, dass das mit JARs etc. geht. Aber ich möchte ja nur einfach die Klasse auf die Form ziehen, damit der GUI Builder für mich die Instanz anlegt und ich diese Instanz dann auch im GUI Builder für weitere Aktionen verwenden kann.

Gruß

Mike


Edit: Ich weiß, wo das Problem liegt. Ich habe die Klasse nachträglich zu einem Singleton umgebaut. Und wenn kein öffentlicher Konstruktor vorhanden ist, dann geht das nicht. Ich hatte aber damals extra die Eigenschaft "Creation Code" o.ä. umgesetzt zu SearchResultModel.getInstance() und es lief auch alles. Irgendwie etwas blöd nun. Ich wollte dort eben dieses Singleton haben. Wie kann ich das nun umsetzen?


----------



## AlArenal (14. Nov 2007)

Merke: Das Singleton ist das am häufigsten missbrauchte Design Pattern. 

Eine Swing-Komponente als Singelton umzusetzen hört sich auch erstmal ziemlich sinnfrei an. Vielleicht schaust du mal, ob du nicht besser die Ursache des Problems angehtst, damit du dir keine blöden Hacks einfallen lassen musst, um schlechte Design-Entscheidungen nicht eingestehen und revidieren zu müssen.

Los, zurück ans Reißbrett!


----------



## miketech (14. Nov 2007)

Hi,

äh es geht ja nicht um eine Swing Komponente. Da wäre das in der Tat etwas sinnfrei. Es geht um eine einfache Java Klasse, die ich als Model für eine Tabelle verwende. Ich möchte eben nur eine Instanz von diesem Model. Der Controller soll dieses Model füllen, allerdings wollte ich ihm nicht zuerst das Model via SetXY zuweisen. 

Das Problem ist ja nur, dass der GUI Builder die erzeugte Instanz nicht kennt, wenn er sie nicht selbst angelegt hat. Es nützt also nichts, wenn ich meine Instanz manuell im Code erzeuge. Der GUI Builder muss das machen, damit ich das Binding vornehmen kann. 

Ich habe aber eben gemerkt: Selbst, wenn es kein Singleton ist, geht es nicht richtig. Dann meckert er, dass es eine JavaBean sein muss. Neulich ging das wie gesagt noch. Also selbst wenn es kein Singleton wäre, würde es immer noch nicht gehen.

Gruß

Mike


----------

