JPanel "überlagern", wie ?

bl4ck29

Mitglied
Hallo,

Ich hab grad erst angefangen GUI zu schreiben und konnte dazu leider mit Hilfe der Suche keine Antwort finden..

...also ich hab eine Toolbar mit 3 Button und 3 JPanel und wenn ich ein Button anklicke soll jeweils das JPanel wechseln. Nun wird allerdings immer nur das letzte angezeigt und die beiden anderen sind weg. Ich hab JPanel.setVisible(true/false) jeweils gesetzt und beim anklicken der Buttons wird jeweils ein JPanel auf true und alle anderen auf false gesetzt. Hab ich vielleicht was vergessen !?

mfg
 
Code:
		Container cp = getContentPane();
		cp.setLayout(new BorderLayout());
		//Toolbar
		tb.add(b1);
		tb.add(b2);
		tb.add(b3);
		tb.add(b4);
		tb.setRollover(true);
		tb.setBorder(BorderFactory.createEtchedBorder());
		cp.add(tb, BorderLayout.NORTH);
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		b4.addActionListener(this);
		//Main
		p1.setBorder(new TitledBorder("Main"));
		p1.setVisible(true);
		box2.add(la1);
		box2.add(tf1);
		box1.add(box2);
		box3.add(la2);
		box3.add(tf2);
		box1.add(box3);
		box4.add(la3);
		box4.add(tf3);
		box1.add(box4);
		box5.add(la4);
		box5.add(tf4);
		box1.add(box5);
		p1.add(box1);
		cp.add(p1, BorderLayout.CENTER);
		cp.add(b5, BorderLayout.SOUTH); 
		b5.addActionListener(this);
		//select
		p2.setBorder(new TitledBorder("Select"));
		p2.setVisible(false);
		p2.add(la5);
		cp.add(p2);

tf = textfield
tb = toolbar
b1-5 = button
p1-2 = panel
box1-5 = box

das ist der Konstruktor bis jetzt... wie gesagt is beim starten das Panel1 nicht zu sehen und wenn ich auf b2 (der Button der Panel2 zeigen soll) drücke kommt Panel2. wenn ich auf b1 (Button für Panel1) drücke kommt Panel1 aber nicht.



//edit : das soll quasi wie nen Tabbedpane sein nur das ich nich diese "Dateireiter" oben haben möchte sondern alles über das klicken der Buttons wechseln soll....vielleicht kann man sich das so besser vorstellen
 
Zuletzt bearbeitet:
Hallo bl4ck29,

hier hast du eine sehr umständliche Methode gewählt (setVisible) die bringt einige Schwierigkeiten mit sich, wenn du sowas realisieren willst, wie du es beschrieben hast nimmt man hierfür ein CardLayout. Danach kannst du ja mal in Foren gucken, oder einfach googeln, das Ding ist ganz einfach zu handeln, Dort wird jedes Panel wie eine einzelne Karte behandelt und du kannst selbst entscheiden, welche Karte sichtbar sein soll.

Wie gesagt google mal, da findest du jede Menge;-)
 
Zurück