JFormdesigner: Umbenennen einer Klasse

Die Lösung und der Tip zuallererst:

Das Umbennen von Klassen, die man mit dem Tool JFormdesigner erzeugt hat, funktioniert nur gut und sinnvoll, wenn man die KLASSE mit den normalen Java-Bordmitteln umbenennt! Offensichtlich ist bei dem Tool nicht die .jfd Datei, in der man ja eigentlich alles angibt, führend, sondern eben diese Klasse! Achtung beim Löschen dieser Java Datei - dies führt ebenfalls, ohne jegliche Sicherheitsabfrage dazu, dass auch die .jfd Datei mitgelöscht wird!

Die Geschichte, wie ich dazu kam, für die, die nichts zu tun haben:

Ich arbeite ja gerade an einem Kundenprojekt ( in fact, mein erste Swing GUI Projekt!), in dem irgendwann vor meiner Zeit die Entscheidung gefallen ist, zur Bearbeitung des GUI die kommerzielle Software "JFormDesigner" zu nutzen. Die Standard IDE im Projekt ist Eclipse.

Viel Auswahl hat man ja leider nicht, wenn man mit Eclipse GUI's lieber "malen" als irgendwie in Quellcode "zusammentexten" will. Da ich noch recht neu bin, bin ich noch unsicher, ob man das mit dem Malen überhaupt so will. Einerseits ist mit plain Swing das hacken eines GUI's nicht gerade ein Spaß - andererseits habe ich so meine Skepsis gegenüber allem, was sich leicht zusammenklicken lässst. Einfach ist es aber, mit dem JFormdesigner eine GUI-Komponente zusammenzubasteln - sowas von Hand mit Swing Code zu machen ist schon was mehr Aufwand.

Hier findet man noch ein paar interessante Tips auf meine (nach ziemlich langem Suchen leicht verzeifelte) Frage, wo man denn ein paar Hinweise bekommt, wie man denn nun eine einfache, saubere Architektur mit Swing aufbaut. Das habe ich nun getan und ein kleines Test-Progrämmchen mit meiner Funktionalität gebaut. Si her noch lange nicht architektonisch perfekt, aber ich bin erstmal zufrieden.

Bevor ich das nun in das Programm einbaue, für das es eigentlich gedacht ist, muss ich nur noch die Klasse umbenennen, da der Name einfach schlecht ist - war erstmal nicht so wichtig, in Produktions-Code will ich aber nur wirklich gute Namen benutzen.

Klingt eigentlich nach einer Aktion, die ganz einfach sein sollte. Ja, sollte eben. Das Ding ist: zu einer GUI-Klasse, die die mit JFormdesigner zusammengebaute Komponente enthält, gehöen zwei Dateien: eine .jfd Datei, die die für's generieren nötigen Daten enthält, und eine .java Datei - die eigentliche generierte Klasse.

Nachdem ich nun eine Weile rumgesucht habe, ob ich irgendwo einen Jformdesigner-spezifischen "rename" Knopf oder so etwas finde, den es aber wohl nicht gibt, habe ich einfach mal in der package View die jdf Datei markiert, und sie umbenannt, wie ich es mit jeder anderen Datei tun würde. das klappt - die jfd Datei hat einen anderen Namen. Nur meine Java Datei heisst noch genau so wie vorher.

Nach einem expliziten "generate Java Code" habe ich nun auch eine Java Klasse mit dem neuen Namen. Doof natürlich, dass der (bewusst ganz knapp gehaltene, aber erst mal nicht komplett vermeidbare) selbstgeschirebene Gluecode in den ausdrücklich zum selbst-bearbeiten freigegebenen Bereichen der Java datei nur in der mit dem alten Namen existiert. Was mache ich? Ja, die Java Datei mit dem neuen Namen löschen, um dann die alte datei erst umzubenennen, und dann das ganze nochmal...

Nee. Das Ding ist schlauer - wenn ich schon die Java Datei lösche, will ich die wohl nicht mehr, also löscht das Ding auch, mitdenkenderweise, die .jfd datei gleich mit. Ohne Fragen, ohne Undo! Gut dass wir natürlich Versionskontrolle haben und ich keine offenen Änderungen hatte - sonst hätte man mich eben noch in Dänemark schreien gehört...

Fazit: meine Skepsis gegenüber "Klicki-Bunti" (bei aller liebe zu meinem Gnome-Desktop) und kommerzieller Software ist zunächst einmal bestätigt...