per JMenu Komponenten in ContentPane entfernen/erstellen

helge76

Grünschnabel
Hallo, ich möchte in einem JFrame per JMenu verschiedene Komponenten-Set's in der ContentPane des JFrame anzeigen lassen.

Bsp:
MenuItem 1 "Übersicht" : JTable zur Datenausgabe
MenuItem 2 "Datensatz anlegen" : Formular zur Dateneingabe

Also, eine Klasse MainGUI, wo per Methoden die Kompoenenten auf eine ContentPane gelegt werden. w.z.B.

class MainGUI
extends JFrame
{
Container cp = getContentPane();
JTextfield firma_txt;
JLabel firma_label;

JTable meineTabelle;


private void erstelleFormular_1(){
...
/* löschen von angezeigten Komponenten */
cp.remove(meineTabelle);
...
cp.add(firma_label);
cp.add(firma_txt);
...
setContentPane(cp);
pack();
}

private void erstelleFormular_2(){
...
/* löschen von angezeigten Komponenten */
cp.remove(firma_label);
cp.remove(firma_txt);
...
cp.add(meineTabelle);
setContentPane(cp);
pack();
}
}


Es funktioniert auch alles aber wird das normalerweise so gemacht? Es geht mir vor allem um das Umschalten durch das Menü sowie das Erstellen/Löschen von ganzen Formularen/Tabellen.

Danke für jede Hilfe!
 
Hi,
ich würde es eher mit wechselnden JPanel umsetzen, wenn es schon ohne CardLayout sein muss. Warum eigentlich?
 
Ich denke in ein JMenu bekommt frau/man mehr unter und es wirkt vom Layout etwas übersichtlicher und vielleicht etwas professioneller oder? Also wechselnde JPanels, dass werde ich jetzt mal probieren.
 
aber du kannst doch beides benutzen cardlayout und dein JMenu... beim cardlayout hast du ein frame mit lauter panels uebereinander, klingt doch genau nach dem was du brauchst ^^
 
Ok Ok, also doch CardLayout.
Scheinbar kann das CardLayout mit Swing und auch ohne Switch Karten verwendet werden. Damit hätte ich wohl mein Problem gelöst. Danke an ALLE! :-)
 
klar get das mit Swing auf das panel greifst du dan ueber
Code:
CardLayout cl = (Cardlayout)deinHauptpanel.getLayout();
cl.next();
z.b. zu um das naechst panel anzuzeigen
 
Zurück