Swing mit WindowsBuilder

Hallo!

Ich bin nun beim Erstellen meiner GUI mit SWING und habe mir auch schon einige Tutorials angeschaut.
Eine Frage bevor ich starte hätte ich noch und zwar wie realisiert man folgendes am besten mit dem Windows Builder:

Ich will ein Hauptfenster haben mit einer Menüleiste. Je nach ausgewählter Funktion soll der Inhalt der darunter dargestellt wird verschieden sein. Einmal will ich eine Tabelle darstellen und einmal nur eine Liste und einmal nur ein paar Buttons.

Muss ich hier nun für alle drei verschiedenen Darstellungsmöglichkeiten ein neues WindowsBuilder Projekt erstellen? Sonst zeichne ich ja quasi immer drüber oder wie läuft das mit dem WindowsBuilder? Ich beziehe mich hier auf die grafische Darstellung des WindowBuilder wo man ja seine GUI einfach zusammenklicken kann so wie man sie will. Ich habe mir eben ein JFrame erstellt, dann ein JPanel darübergelegt, ganz oben das Menü und in der mitte ein JTable. Wie erzeuge ich nun die anderen Darstellungsmöglichkeiten? Mit einem extra fenster das ich dann einfach aufrufe oder wie macht man das?

Vielen Dank und noch einen schönen Sonntag

*** Edit ***

werde das cardlayout verwenden!

Von GUI-Buildern halte ich nicht viel, vor allem da oft NullLayout mit setBounds erzeugt wird. Ich schreiben meine GUIs immer direkt im Code und nutze dabei viel das GridBagLayout.

Für dein Vorhaben würde ich einfach mehrere JPanel nehmen und je nach ausgewählter “Funktion” dann das entsprechend JPanel “aktiv” setzen.
Alternativ könnte man auch ein JTabbedPane verwenden.

Bei mir sieht das Layout, was Sen- meinte, zB so aus:

Problem ist dabei aber, dass der Button, nur mit dem Text “Suche …”, kleiner sein könnte, was bei Null-Layout nicht wäre, wobei aber nicht Größe verändert werden könnte. Aber alles andere ist drin.

Null-Layout: evil, vereinfacht gesagt können dann nicht leicht und schnell neue GUI-Komponenten hinzugefügt werden. :mad:

Durch schachteln von Komponenten in JPanels kann man das erreichen. Die beiden TextFelder in ein JPanel mit GridLayout. Dieses Panel wiederum ins Center eines JPanel mit BorderLayout. Den Button in den EAST-Bereich.
Oder eben mit GridBagLayout, wobei sich das gerne auch mal „verzieht“, weil es dynamisch auf die Feldinhalte reagiert. Das heißt, es kann passieren, dass die Textfelder nicht mehr gleich breit sind.

Das von @martin1989 angesprochene CardLayout klingt erst mal für das, was er erreichen möchte gut.

Hallo zusammen, vielen dank für die hilfreichen antworten!

ich werde es mal mit dem cardlayout versuchen:)

@sen: das jeweilige jpanel aktiv setzen ist ja nicht wirklich ein anderer ansatz als das cardlayout oder?

@Lex
Habe noch nie erlebt dass das GridBagLayout dynamisch reagiert. Wenn du damit meinst das es auf die PrefferedSize reagiert, das tun die meisten anderen LayoutManager auch, aber einfach JTextField ? Das musste mir noch mal bitte genauer erklären. (Ich zweifel grad so ein bisschen an mir selbst.)

@TO
Letztlich nicht, zumindest nicht soweit ich das CardLayout verstanden habe. Ich denke jedoch der Unterschied liegt in der Schachtel-Tiefe. Während man beim CardLayout noch ein weiteres Panel zwischen hat (eben das Layout selbst) setzt man durch manuelles setzen eine Eben höher an. Kann aber auch sein das ich mich irre.

@Sen-Mithrarin :
Mit “dynamisch reagieren” meinte ich, dass es zu Verschiebungen der Dimensionen von GUI-Komponenten kommt bzw. kommen kann. Kommt bspw. oft vor, wenn man mit variablen Textinhalten arbeitet, die dann in JTextFields oder JComboBoxen geladen oder eingegeben werden.
Oder man macht bspw. eine Eingabe in mehrere Textfelder, die in einer Zeile liegen und vergrößert dann mal das einbettende JPanel/JFrame/JDialog etc. Dann passen sich die Breiten der Textfelder etc. an den Textinhalt an, natürlich in Abhängigkeit evtll. gesetzter Gewichtung (weightx/weighty). Es gibt dann kaum noch eine andere Möglichkeit, also die Dimensionen der betreffenden Felder festzulegen, was das Layout in seiner Dynamik begrenzt, was oftmals nicht erwünscht ist.

Ja, gut, verstehe was du meinst, ist mir auch bekannt, vor allem wenn man selbst eine “Liste” baut passt sich dann die Breite an das jeweils breiteste Element an.
Wie aber ein JTextField auf eingegebenen Inhalt reagieren soll, also das es sich bei einem Update an die Länge des Textes anpasst, hab ich noch nicht erlebt. Hast du dafür ein Beispiel parat ?