NetBeans GUI-Builder: *.form-File anpassen

Hallo Forum,

ich habe zu Beginn meiner Beschäftigung mit Java ein Programm mit einem ziemlich komplexen GUI erstellt. Als Anfänger habe ich damals die Zugriffs-Modifizierer bei sehr vielen enthaltenen Komponenten ungünstig gesetzt. Das könnte ich jetzt bei jeder betroffenen Komponenten über den GUI-Builder wieder korrigieren, ist aber bei deren Vielzahl eine Heidenarbeit. Innerhalb von NetBeans kann der vom GUI-Builder erzeugte Code nicht direkt verändert werden, da er nicht editierbar ist. So bleibt nur der aufwändige Umweg über die entsprechenden GUI-Builder Menüs. Viel leichter wäre es, die Korrekturen per externem Texteditor direkt im File des entsprechenden Frames vorzunehmen. Ich kann so zwar in der Datei MeinFrame.java bspw. “public” durch “private” ersetzen, sobald ich aber wieder innerhalb von NetBeans das Frame verändere und speichere, sind wieder die alten Modifizierer drin. Meine Vermutung ist, dass diese im File MeinFrame.form abgelegt sind und bei jedem Speichern entsprechend der dortigen Einträge überschrieben werden. Deshalb dachte ich, ich müsste per Texteditor entsprechende Änderung am .form-File vornehmen, stelle aber zu meiner Überraschung fest, dass in dessen XML-Text die Begriffe “public” oder “private” gar nicht vorhanden sind und somit nicht ersetzt werden können. Hättet Ihr eine Idee, wie ich vorgehen kann …

Wirklich weiterhelfen kann ich dir nicht. Aber irgendwie muss der GUI Builder das speichern. Wenn du die Stelle nicht findest dann ändere einen modifier, speicher das ganze ab und mach ein diff mit der original Datei.

Der Code ist editierbar. Nicht leicht zu finden, aber es geht, wenn auch nicht frei und immernoch umständlich.

Die Form-Datei ist eine XML-Datei, die kannst du bspw. mit Notepad++ öffnen.
Aber dort stehen die Modifizierer nicht drin.

Wo nun aber die Modifizierer eingesetzt werden, weiß ich im Moment auch nicht.
Es gibt eine Einstellung in Netbeans, die festlegt, wie die Instanzvariablen zu deklarieren sind. Ob du da das Problem lösen kannst?

Projekt in NetBeans schließen
Projektverzeichis auf der Platte finden, z.B. /home/mlarue/workspace/rcsSCAN/src/com/rcs/app/scan/ (nach src ist es dein Package, sollte net all zu schwierigsein…)
da sind deine .java Dateien, im Editor öffnen, bearbeiten (Modizierer ersetzen bla), speichern.
Projekt in NetBeans neu öffnen… fertig.

in der .form Datei ist nur das Layout etc für den NetBeans Gui Builder abgespeichert, für dein tatsächliches Java Projekt brauchst es nicht (kannst aus den .java Dateien deine .jar erstellen, die lauffähig ist, auch ohne die build Datei und andere Scripte).

[QUOTE=mla.rue;64666]Projekt in NetBeans schließen
Projektverzeichis auf der Platte finden, z.B. /home/mlarue/workspace/rcsSCAN/src/com/rcs/app/scan/ (nach src ist es dein Package, sollte net all zu schwierigsein…)
da sind deine .java Dateien, im Editor öffnen, bearbeiten (Modizierer ersetzen bla), speichern.
Projekt in NetBeans neu öffnen… fertig.[/QUOTE]

Genauso mache ich das, nur - wie gesagt - solange die entsprechende .form-Datei existiert, sind die Änderungen beim nächsten Speichern wieder futsch.

[QUOTE=mla.rue;64666]
in der .form Datei ist nur das Layout etc für den NetBeans Gui Builder abgespeichert, für dein tatsächliches Java Projekt brauchst es nicht (kannst aus den .java Dateien deine .jar erstellen, die lauffähig ist, auch ohne die build Datei und andere Scripte).[/QUOTE]

Die Datei zu entfernen wäre keine Lösung für mich, da man sich dann für dieses Frame vom GUI-Builder irreversibel verabschieded. Der Preis wäre mir in diesem Fall zu hoch.

Man müsste irgendwie die Stelle finden, wo der GUI-Builder die Modifier speichert, mit denen er die Java-Files immer wieder überschreibt. Weiß der Himmel, wo das ist.
@ EikeB: hab die Stelle trotz deines Tipps nicht gefunden. Möglicherweise liegen die in keiner Textdatei …

Verstehe, die Änderungen greifen natürlich, wenn aber die Komponente im GUI BUilder öffnest und editierst, werden die überschrieben.

.form Auszug… so sieht die Definition einer Komponente aus, wenn diese nicht geändert wurde

[XML]










[/XML]

… und so schauts aus, wenn den Modifizierer auf “public” stellst, hab die entscheidende Stelle mit vorangestelltem Kommentar “markiert”

[XML]







<AuxValues>
  <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="1"/>
</AuxValues>
[/XML]

ob du aber von Hand die .form Datei nach jeder Komponente durchforsten willst, wo den Modifizierer ändern willst, weiss ich nicht. Da kannst genausogut das ganze über den GUI Builder machen. Wieso willst das überhaupt? Es ist eh alles standardmäßig private und soviele Änderungen zu public und protected wirst doch wohl net haben (sollen).

Protected ist übrigens 4

Super, mla.rue, das ist klasse und hilft mir weiter. Auch wenn du mein Anliegen etwas fragwürdig findest, ist es eine echte Hilfe für mich. Also vielen Dank! :slight_smile:
Und danke nochmal EikeB. Hätte ich deinen Vorschlag richtig angewandt, wäre ich ja auf genau diese Lösung gestoßen:redface-new: