jTabbedPane - mehrere JPanels unter selben Tab?

Angiii

Erfahrenes Mitglied
Hallo,

ich habe eine JTabbedPane, über die mit Hilfe mehrerer Tabs meine Funktionen verteilt habe. Die einzelnen Tabs habe ich wiefolgt in die jTabbedPane integriert:

Code:
	jTabbedPane.addTab("Main", PanelTab1.getJPanelTab1());
	jTabbedPane.addTab("Image", PanelTab2.getJPanelTab2());
	jTabbedPane.addTab("Advanced", PanelTab3.getJPanelTab3());
Das dritte Tab (PanelTab3) will ich nun variabel gestalten. Das heißt, unter dem selben Tab-Namen "Advanced" sollen sich zwei verschiedene JPanel befinden. Welches dieser beiden JPanels letztentlich angezeigt wird, ist abhängig von einem Schalter, welcher sich in der Hauptklasse befindet.

Jedoch weiß ich nicht, mit welcher Funktion ich dieses Problem lösen kann.

Letztendlich soll das ungefähr in diese Richtung gehen:
Code:
if (MainPanel.getUmschalter().isSelected()) {
	jTabbedPane.addTab("Advanced", PanelTab3.getJPanelTab3v1());
} else {
	jTabbedPane.addTab("Advanced", PanelTab3.getJPanelTab3v2());
}
Nur wenn ich im Moment diesen Code benutze, werden jeweils zwei neue Tabs hinzugefügt. Mein Ziel ist es, das bestehende Tab3 zu verändern ohne etwas neu hinzuzufügen.

Kann mir irgendwer einen Tip geben? Vielen Dank schonmal
 
Hallo,

ich würde folgendermaßen vorgehen:

Beim erstellen der GUI standardmäßig deine Tabs zufügen.

Wenn nun dein Umschalter betätigt wird solltest du den Tab3 vom TabbedPane entfernen (tabbedPane.remove .....) und anschließend den neuen Tab hinzufügen. (tabbedPane.add .....)

Gruß Boromeo
 
Hallo, danke für deine Antwort! Hab das gerade mal ausprobiert. Im Prinzip funktionierts. Das einzige was mich noch stört ist, dass das neu hinzugefügte Tab nicht an die Stelle des vorherigen Tabs gesetzt wird.

Ich habe zum Beispiel 5 Tabs und will das 3. davon ersetzen. Dazu entferne ich erst das vorhandene 3. Tab und füge dann ein anderes hinzu. Dieses neue Tab erscheint jedoch nicht an Position 3 meiner TabbedPane sondern ganz hinten an Position 5. Gibts eine Funktion mit der ich die Reihenfolge der Tabs ändern kann?
 
Hallo,

ein weiterer Vorschlag wäre noch, dass du ein JPanel mit einem CardLayout anlegst. Dort kannst du dann beide Panels von dir hinzufügen. Dann musst du nur noch das richtige Panel einblenden. So musst du nicht ständig hinzufügen und entfernen, sondern halt nur das richtige Panel darstellen.

MFG

Sascha
 
Hi,

das mit dem CardLayout finde ich auch noch besser.

Dennoch: JTabbedPane stellt auch die Methode add(Component c, index i) bereit, damit solltest du eigentlich einen Tab (Component c) an gewünschter Position (index i) zufügen können.

Gruß boromeo
 
Vielen vielen Dank euch beiden! Habe beide Mehthoden mit Erfolg ausprobiert. Letztendlich bleibe ich jetzt beim CardLayout - ist bei der Menge an Tabs die ich habe übersichtlicher.
 

Neue Beiträge

Zurück