GroupLayout zur Laufzeit erweitern

Jhue89

Bekanntes Mitglied
Hallo Zusammen,

neuer Tag neue Probleme. Mit dem Layout stehe ich mittlerweile echt auf Kriegsfuss.

Ich habe folgendes Problem:
ich habe mir aus pnlSchachtel1 ein Array gebaut. über einen Button möchte ich dann jeweils den Schachteleditor um ein Panel erweitern.
pnlCenter ist ein Borderlayout
pnlSchachteleditor ist als Grouplayout angelegt. Ob das gut ist weiß ich nicht. Jedenfalls wird damit beim maximieren das pnlSchachtel1 automatisch erweitert.
bei anderen Layouts ist das leider nicht der Fall.

Jetzt stellt sich für micht die Frage wie ich das Grouplayout zur laufzeit erweitern kann. So wie ich das sehe muss ich doch von vorne rein die anordnung definieren oder?

Oder ist ein anderes Layout dafür besser geeignet?

Grouplayout.PNG

Danke für eure Hilfe ohne euch wäre ich wahrscheinlich aufgeschmissen.
 
Von GroupLayout lass ich die Finger, hab damit keine guten Erfahrungen gemacht. Das ist eher was für Entwickler, die das aus Visual Studio kennen.

Ich bin ein Anhhänger von GridBagLayout, in einigen Situationen bieten sich natürlich auch andere Layouts an, es hängt halt immer davon ab, was du darstellen willst. Für ein (Sub-)Panel mit einer Auflistung von Checkboxen z.B. ist das Gridlayout am angenehmsten.

Überleg dir aber, ob du wirklich etwas hinzufügen MUSST. Hardcodiert "blind" hinzufügen (ohne Editor, in dem man sieht, was man macht) ist nie angenehm. Normalerweise reichen das Ein- und Ausblenden von Komponenten vollkommen aus. Der Layoutmanager übernimmt dann die Skalierung der restlichen Komponenten.
Auch ist es nicht sinnvoll, für jeden Datensatzeintrag eine eigene Komponente zu erstellen. Im Normalfall hat man eine fixe Anzahl an Komponenten (oder eine maximale Anzahl), die dann mit den Daten der Auswahl befüllt werden.

Wenn du einen Bereich hast, in dem sich der Inhalt dynamisch ändern soll, dann bietet sich CardLayout an. Es funktioniert im Grunde wie ein TabbedPane, hat aber keine sichtbarren Buttons.
 

Zurück
Oben