JPanel-Größe verändert sich nicht. Warum?

Rubinum

Mitglied
Hallo,

ich habe mal wieder ein Größen-Problem in meiner GUI Programmierung und zwar:

Vorweg, ich benutze den WindowBuilder als Plug-In, mehr nicht.
Meine Situation ist recht Simpel. Ich habe 1 JPanel panel_a und diesem JPanel befindet sich noch ein JPanel panel_b.

panel_a besitzt ein FlowLayout. Wenn ich nun aber sage:

Java:
panel_b.setSize(panel_a.getSize());

wird dieser Befehl partou nicht aufgeführt.

Warum? Es funktioniert nicht und ich verstehe nicht warum.

Mfg Rubinum
 
Wenn du einen LayoutManager (BorderLayout, FlowLayout, GridLayout, etc.) nutzt, solltest du die Methode setPrefferedSize(), setMinimumSize(), setMaximumSize() nutzen. Nur wenn du keinen LayoutManager hast bringt dir setSize() etwas.
 
Ja aber das panel_a besitzt doch irgendwie in irgendeiner hinsicht eine Größe. Ich will nur das die beiden Panel gleichgroß sind. Das kuriose daran ist, dass ich das mit einem anderen Panel schon geschafft habe. Ich habe dann nur versucht es zu replizieren, aber jetzt stehe ich vor diesem Problem, dass dieses Panel sich nicht verändern lässt von der größe her. Du meinst also ich soll mal deine Erwähnten Methoden verwenden. Ich schau mal und melde mich dann wieder.
 
ja aber um die größe von etwas (hier: panel_b) zu ändern, was sich in etwas (hier: panel_a) mit einem layoutmanager befindet (hier: flowLayout), musst du die folgenden befehle nutzen.
Java:
panel_b.setPreferredSize()
Java:
panel_b.setMinimusSize()
Java:
panel_b.setMaximumSize()

den befehl
Java:
setSize()
kannst du nur auf etwas benutzen, was sich in etwas ohne layoutmanager befindet (z.B. JFrame) oder wenn du das null-Layout benutzt.


PS: NICHT das null-layout benutzen
 
ja aber um die größe von etwas (hier: panel_b) zu ändern, was sich in etwas (hier: panel_a) mit einem layoutmanager befindet (hier: flowLayout), musst du die folgenden befehle nutzen.
Java:
panel_b.setPreferredSize()
Java:
panel_b.setMinimusSize()
Java:
panel_b.setMaximumSize()

den befehl
Java:
setSize()
kannst du nur auf etwas benutzen, was sich in etwas ohne layoutmanager befindet (z.B. JFrame) oder wenn du das null-Layout benutzt.


PS: NICHT das null-layout benutzen
Das man keinen LayoutManger benutzen sollte musste selber auch schmerzhaft erfahren xD. Leider gefallen mir alle LayoutManager nicht, weil sie nicht sehr sagen wr mal "benutzerfreundlich" sind. Das was man einstellt, ist nicht unbedingt immer das was man sieht und das nervt mich xD, aber das gehört jetzt nicht zum Thema.


Ich habe deinen Vorschlag nun ausprobiert und selbst damit geht es nicht. Hmpf.
 

Zurück
Oben