Swing-Komponente adden in NetBeans

Hallo Community,

habe ein Java-Problem mit NetBeans. Wenn ich über Swing einen JFrame erstelle, wird dieser Code von NetBeans automatisch gesperrt, d.h. ich kann nicht über den „normalen Weg“ z.B. layout.add(…) eine weitere Swing-Komponente z.B. ein JLabel zu meinem Layout hinzufügen.

Ich müsste irgendwie von „außen“ an mein Layout herankommen bzw. an den Frame, so dass ich JLabel oder JPanel hinzufügen kann.

Vielleicht ist das auch zu kompliziert erklärt. Wenn ich in NetBeans eine Swing-GUI erstelle (in meinem Fall mit JFrame) kann ich den Code, der die Komponenten initialisiert, nicht bearbeiten. Also muss ich danach noch an das Layout, um weitere Komponenten von Swing hinzuzufügen.

Klar, kann ich die Komponenten auch per drag & drop im Designer draufziehen. Aber ich möchte JLabel auch automatisch erstellen lassen. Dafür müsste ich die Komponente aber „nachträglich“ noch auf den Frame adden.

Ich bin relativ neu in Java drin, hab aber keine Probleme mit der Sprache (hab schon 2 Jahre vorher mit PHP angefangen). Nur diese Swing-Komponenten machen mir noch Probleme.

Vielen Dank schonmal!

MfG, Florian J.

Hi,
ich hatte auch schon dieses Problem. Leider hab ich keine wirklich zufriedenstellende Lösung gefunden (hab auch nicht lange gesucht), sondern einfach den kompletten Quelltext kopiert und in eine neue Klasse eingefügt.

Grüße, Keks

Hmmm… jo so werde ich das wohl auch machen müssen. Aber irgendwie muss man doch ein Element auch naträglich noch zur Oberfläche hinzufügen können?!

Danke schonmal für die Antwort!

MfG, Florian J.

Hi,

ich hoffe ich habe dich richtig verstanden. Den generierten Quelltext kannst du, per rechten Mausklick auf die Komponente und dann Quelltext anpassen, bearbeiten. Links hast du eine Auswahl „Standard Quelltext“ oder „angepasste Erzeugung“. Aber ich glaube das ist nicht ganz was du gemeint hast. Dann probier mal: Die Zeile, die du verändern möchtest auswählen und dann rechten Mausklick auf deinen Quelltext, des Frames, dort hast du die Optionen „Anweisung einfügen“ und „Überarbeiten“ wo du Methoden, Felder usw. einfügen kannst, die sich dann auf deine ausgewählte Zeile beziehen. Bsp.: angenommen du möchtest diese Zeile verändern > titelField.setName(„titelField“); // NOI18N

Dann wird so ein Code, auf dem von mir oben beschreibenen Weg, erzeugt >

private void title() {
 titelField.setName("titelField"); // NOI18N
}

Ich hoffe das war was du meintest. Aber als Tipp:

Netbeans ist zwar ganz nett, mit der Guigenerierung, aber ich würde meine Gui immer selber programmieren. Jedes Panel in eine eigene Klasse, alle Klassen erzeugt in einer Klasse, die von JFrame erbt.
Dadurch wird dein Code portabler und wartbarer + übersichtlicher, da weniger Zeilen pro Klasse anfallen. Desweiteren macht es auch Mehrarbeit, wenn du z.B einen Taschenrechner programmieren möchtest, wirst du mit der Guigenerierung, bei den späteren Funktionen Probleme bekommen, da fährt man besser, wenn man die Gui selbst programmiert.

Gruß