Elemente im Panel in richtige Ausgangsstellung bringen

saladin100

Mitglied
Hallo zusammen,

Folgendes Problem: In meinem JFrame habe ich ein JPanel. Im JPanel habe ich verschiedene Komponenten. Diese Komponenten werden nach einem klick auf einen Button auf das Panel gebracht und der Betrachter kann sie anschauen und sowas.

Das Problem ist, dass die Elemente in JPanel falsch angeordnet sind. Erst nachdem ich das Fenster
nehme und die Größe des Fensters kleiner oder größer mache, verschiebt sich alles in die
richtige Position und verhält auch sonst richtig.

ich glaube einige kennen dieses Problem.

Ich habe schon probiert sämtliche Größen des JPanels und des JFrames zu setzten. Nichts!!

Weis jemand wie man das Problem löst?
Wenn Bilder erwünscht sind kann ich noch welche hochladen

lg saladin
 
Manchmal geht man davon aus das man "teils" schon Sachen kennt, obwohl man gewisses nochmals durchlesen könnte.

Der Layoutmanager ist ein Java-Objekt das mit einer bestimmten Komponente verknüpft ist meistens Hintergundkomponente. Der Layoutmanager ordnet die Dinge die in den Hintergrundkomponenten sind.
Standardmässig ohne Angaben, verwendet JFrame den Borderlayout und JPanel den FlowLayout.
Also man könnte mehrere Jpanels ineinander verschachteln usw.

Aber man könnte sich vielleicht auch berechnen was ein Layoutmanager tun wird?

Hier noch ein Link für Grundlagen: Java ist auch eine Insel – 15.10 Alles Auslegungssache: die Layoutmanager

Gruss
 
Danke für die ausführliche Erklärung vom Layoutmanager, aber son heftiger newbee bin ich auch wieder nicht 😀.

Layoutmanager wird schon verwendet. Mehrere ineinander geschachtelte. Was für welche Layouts es sind weis ich grad nicht. Müsst ich meinen Partner nochma fragen. Gridbaglayout oder so glaub.

Aber ich glaub sowieso nicht, dass es daran liegt. Hat jemand noch eine andere Idee?


Ok hab grade gefragt.. Sind ineinerander geschachtelte boxlayouts
 
Zuletzt bearbeitet:
Wenn man Components zu einem Container hinzufügt oder entfernt, muss man mit "validate()" das Layout neu anstoßen, das fehlt wohl. Ein
container.validate();
container.repaint();
könnte helfen, BoxLayout ist manchmal ein bißchen bockig, revalidate() sollte das ganze "from scratch" neu Layouten, aber is vielleicht nicht nötig
 
Ja, ich kenne solch ein Verhalten und bei mir hat schon oft ein JFrame.pack(); geholfen um das Layout neu zu berechnen.
 
leider auch nicht


ich hatte inzwischen

mainFrame.getDrawPanel().updateUI();
mainFrame.getDrawPanel().validate();
mainFrame.getDrawPanel().repaint();
mainFrame.getDrawPanel().revalidate();

und

mainFrame.validate();
mainFrame.repaint();

hat alles nichts gebracht
 
Zuletzt bearbeitet:
poste ein KSKB, das dein Problem auf wenige Komponenten reduziert und das auch reproduzierbar ist...entweder findest du den fehler selber, oder wir werden den gemeinsam finden, alles andere ist imho "rate mal mit rosenthal"
 
ou shi* 😀... des kannst glaub knicken ... ich probiers mal wenn ich absolut kein bock mehr hab selber zu suchen... naja... trotzdem danke für eure tipps 😉

lg saladin
 

Neue Themen


Zurück
Oben