Panel ein- und ausblenden funktioniert nicht

Status
Nicht offen für weitere Antworten.

heybiy

Mitglied
Hallo Leute..

hab ein kleines Problem.
ich möchte nach einem Klick auf einem Button einen Panel auf unsichtbar stellen..und gleichzeitig einen anderen Panel im Frame sichtbar machen. Was mache ich hier falsch..kann mir jemand helfen????:L

Die Panels in der Klasse Design:
Code:
JPanel main = new JPanel();	
JPanel kvwMain = new JPanel();

JButton kv = new JButton("Hallo");

Der Listener in der Klasse Controller...:

Code:
design= new Design();

design.kv.addActionListener(this);
design.kv.setActionCommand("kursvw

public void actionPerformed(ActionEvent e) {
		
		if(e.getActionCommand() == "kursvw"){
			System.out.println("Das war Hallo");
			
			design.main.setVisible(false);
			design.kvwMain.setVisible(true);
			
			System.out.println("Jetzt kvwMain auf false");
			
		}

Die Frame-Klasse..:
Code:
public class DesignFrame extends JFrame {

	Controller ctl;
	
	
	public DesignFrame(){
		
		ctl=new Controller();
		this.setTitle("Startseite");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(950, 500);
		
		this.add(ctl.design.kvwMain);
		ctl.design.kvwMain.setVisible(false);
		
		this.add(ctl.design.main);
		
		
		
		ctl.design.main.setVisible(true);
		this.setVisible(true);
	}
 

Ariol

Top Contributor
Sowas?
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class PanelSwitcher extends JFrame
{

	private static final long	serialVersionUID	= 1L;
	
	JPanel switcherPanel = new JPanel();
	JPanel centerPanel = new JPanel();
	JPanel redPanel = getJPanel(Color.RED);
	JPanel bluePanel = getJPanel(Color.BLUE);
	
	public PanelSwitcher()
	{
		
		switcherPanel.setLayout(new GridLayout(0,1));
		
		JButton redButton = new JButton("RED");		
		JButton blueButton = new JButton("BLUE");	
		
		redButton.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				setCenterPanel(redPanel);
			}
		});
			
		blueButton.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				setCenterPanel(bluePanel);
			}
		});
		

		switcherPanel.add(redButton);
		switcherPanel.add(blueButton);
		
		setLayout(new BorderLayout());
		add(switcherPanel,BorderLayout.WEST);
		add(centerPanel,BorderLayout.CENTER);
		
		setPreferredSize(new Dimension(200,150));
		pack();
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}
	
	protected void setCenterPanel(JPanel panel)
	{
		remove(centerPanel);
		centerPanel = panel;
		add(centerPanel,BorderLayout.CENTER);
		validate();
		centerPanel.repaint();
	}

	private JPanel getJPanel(Color c)
	{
		JPanel panel = new JPanel();
		panel.setBackground(c);
		return panel;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		new PanelSwitcher();
	}

}
 

heybiy

Mitglied
vielen dank...

Ich hab mir dein Code angeguckt und ausprobiert..und es sollte auch tatsächlich so sein..
Jedoch weiß ich nicht so ganz..wie ich das bei mir implementiere..

Ich habe in dem main-Panel so viele Componente..

wie könnte ich so einen "Switcher" in meinem Programm einbauen...??vllt paar Vorschläge????:L
am besten an meinem Code etwas zeigen..:bahnhof:
 
Zuletzt bearbeitet:

Ariol

Top Contributor
wie könnte ich so einen "Switcher" in meinem Programm einbauen...??vllt paar Vorschläge????:L
am besten an meinem Code etwas zeigen..:bahnhof:

Poste doch mal dein bisher geschriebenes, ausführbares Programm, in dem du den Fehler hast.
Notfalls auch ein kleines ausführbares Beispiel, an dem man dein Problem erkennen kann.
 

heybiy

Mitglied
Der Teil der benötigt wird ist ja oben schon..
meine Panels um die es geht..und der Button.

Ich habe auf dem einen main-Panel alle Komponenten..das heißt wenn ich das Programm starte erscheint dieser Panel.

Nun wenn ich auf den einen Button klicke..soll dieser Panel nicht mehr sichtbar sein, stattdessen ein anderer Panel den ich auch erstellt hab.
In diesem erstellten Panel kommen dann die nächsten Komponenten rein.
 

eRaaaa

Top Contributor
Ariol hat dir doch schon einen ansatz gepostet. du kannst doch einfach anstatt seinen farbpanels, deine eigenen benutzen, mit deinen komponenten etc. war ja nur ein beispiel von ihm.
ansonsten kannst du dir ja auch mal die folgende cardlayout demo anschauen:
Java:
JTextPane textpane;
	JPanel cardpanel;
	boolean einsIsActive = true;

	public CardLayoutDemo() {
		
		JPanel panel = new JPanel(new BorderLayout());
		
		// header
		JPanel header = new JPanel();
		JButton button = new JButton("Switcher");
		button.addActionListener(this);
		header.add(button);

		// Card
		cardpanel = new JPanel();
		cardpanel.setLayout(new CardLayout());

		// Dein erstes Panel
		// adde hier die Komponenten die du beim 1. angezeigt bekommen möchtest
		JPanel eins = new JPanel();
		eins.add(new JLabel("Erstes Panel"));

		// Dein zweites Panel
		// adde hier die Komponenten die du beim 2. angezeigt bekommen möchtest
		JPanel zwei = new JPanel();
		zwei.add(new JLabel("Zweites Panel"));

		// zum Cardlayout-Panel hinzufügen
		// deinen Panels einen Namen geben ("eins", "zwei")
		cardpanel.add(eins, "eins");
		cardpanel.add(zwei, "zwei");

		panel.add(header, BorderLayout.NORTH);
		panel.add(cardpanel, BorderLayout.CENTER);
		add(panel);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		pack();
		setVisible(true);
	}

	public static void main(String[] args) {

		new testklasse();

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		CardLayout cl = (CardLayout) (cardpanel.getLayout());
		cl.next(cardpanel);
	}

}
auch hier ist es wieder so, dass du anstatt den 2 panels mit jeweils einem label, halt deine jpanels nutzen kannst.

/edit: ach dieses isactive gedönst braucht man ja garnicht :)
cl.next(cardpanel); tuts auch :D
 
Zuletzt bearbeitet:

Ariol

Top Contributor
Der Teil der benötigt wird ist ja oben schon..
meine Panels um die es geht..und der Button.
Das Zauberwort war "ausführbar". Ich hab keine Lust mir aus den Teilen, die du gepostet hast irgendwie zusammenzuraten, wie die jetzt wo hingehören damit der Kram läuft.

Was ist Design? Was Controller????:L???:L???:L

Nun wenn ich auf den einen Button klicke..soll dieser Panel nicht mehr sichtbar sein, stattdessen ein anderer Panel den ich auch erstellt hab.
In diesem erstellten Panel kommen dann die nächsten Komponenten rein.

Schön, und das andere Panel muss ich jetzt wo herzaubern? (Wo wird es definiert, wo ist der Button)

Außerdem hast du jetzt 2 ziemlich einfache Beispiele, die man mit ein wenig Einarbeitung in das Thema (und das sollte man tun - damit man weiß, was man macht) recht einfach umschreiben könnte.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dit_ Mit Button "Weiter" neues Panel laden, altes ausblenden... AWT, Swing, JavaFX & SWT 4
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
CptK Ordentlicher Code & Panel ab bestimmter Komponentenzahl scrollbar machen AWT, Swing, JavaFX & SWT 12
B JTextField in Panel positionieren AWT, Swing, JavaFX & SWT 1
R Swing Panel nur bei Maus sichtbar AWT, Swing, JavaFX & SWT 2
B mit Maus verschiebbares Panel AWT, Swing, JavaFX & SWT 2
S Labels in Panel erstellen AWT, Swing, JavaFX & SWT 1
H Aus Array Container Panel an Tabbedpane zuweisen AWT, Swing, JavaFX & SWT 29
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
CptK Swing DropdownMenu über Panel-Grenzen hinaus anzeigen AWT, Swing, JavaFX & SWT 1
J Aufklappbares Panel in Toolbar AWT, Swing, JavaFX & SWT 6
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
S Swing Panel übernimmt komponenten von anderem AWT, Swing, JavaFX & SWT 7
J Panel auf Frame positionieren AWT, Swing, JavaFX & SWT 9
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
K Swing Entfernen von Panel funktioniert nicht AWT, Swing, JavaFX & SWT 5
L JavaFX Animation für Panel wechsel AWT, Swing, JavaFX & SWT 3
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
L JavaFX Klickverhalten bei einem Panel AWT, Swing, JavaFX & SWT 1
A Swing Panel mit ScrollBar AWT, Swing, JavaFX & SWT 7
K Panel verdeckt MenuItem AWT, Swing, JavaFX & SWT 5
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
N Swing Label auf Panel legen.. AWT, Swing, JavaFX & SWT 2
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
T Swing Graphics auf Panel AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
P AWT Panel überschreibt vorheriges... AWT, Swing, JavaFX & SWT 2
Thallius Swing Warum kann man Texte im Panel nicht markieren? AWT, Swing, JavaFX & SWT 1
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
M AWT Panel wird nicht angezeigt AWT, Swing, JavaFX & SWT 7
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
M JavaFX Slide Panel AWT, Swing, JavaFX & SWT 2
P Swing Panel nicht sichtbar AWT, Swing, JavaFX & SWT 1
M Swing JtextField Panel in ander Panel aufrufen AWT, Swing, JavaFX & SWT 0
M Panel in geerbter JFrame Klasse adden AWT, Swing, JavaFX & SWT 4
S ScrollPane in Textarea und auf Panel AWT, Swing, JavaFX & SWT 4
D Swing Bei Button Click neues Panel laden AWT, Swing, JavaFX & SWT 3
D Panel wird nicht angezeigt und Fragen zum CardLayout AWT, Swing, JavaFX & SWT 6
S Swing JMenu löscht auf panel gezeichnetes AWT, Swing, JavaFX & SWT 3
X Java Panel zeitweise repainten AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
B zweidimensionales Buttonarray auf Panel AWT, Swing, JavaFX & SWT 11
F JAVA-EDITOR: Panel in Frame aufnehmen AWT, Swing, JavaFX & SWT 3
F textarea lässt panel verschwinden AWT, Swing, JavaFX & SWT 4
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
A Panel lässt sich nicht bewegen AWT, Swing, JavaFX & SWT 2
E Panel mit Leben füllen AWT, Swing, JavaFX & SWT 2
K Swing Maus in Panel einsperren AWT, Swing, JavaFX & SWT 8
D Panel in Panel zentriert nicht richtig AWT, Swing, JavaFX & SWT 3
P Swing Panel-austausch über einen MenuListener AWT, Swing, JavaFX & SWT 2
1 Swing Bestimme ob ein Subelement eines panel den Fokus verloren hat AWT, Swing, JavaFX & SWT 2
P Swing Button über gesamtes Panel AWT, Swing, JavaFX & SWT 2
O LayoutManager Panel in Panel "maximieren" AWT, Swing, JavaFX & SWT 2
C AWT Horizontale Linie in einem Panel AWT, Swing, JavaFX & SWT 12
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
B Export eines Panel mit ScrollBar AWT, Swing, JavaFX & SWT 4
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
bluerob Panel im BorderLayout South wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
M Swing Panel klassenübergreifend ändern AWT, Swing, JavaFX & SWT 6
M Swing JFrame in einem Panel zeichnen AWT, Swing, JavaFX & SWT 3
A 2D-Grafik Panel inhalt löschen AWT, Swing, JavaFX & SWT 5
H Scroll Panel wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 6
S Elemente im Panel in richtige Ausgangsstellung bringen AWT, Swing, JavaFX & SWT 10
X Swing Panel Extra Klasse & Aufruf über Button AWT, Swing, JavaFX & SWT 18
Kenan89 2D-Grafik paintComponent quetsch alles in Panel AWT, Swing, JavaFX & SWT 26
C Bild auf Panel vergrößern und verschieben AWT, Swing, JavaFX & SWT 4
C ImageIcon eines Labels auf einem Panel in neuem Fenster anzeigen AWT, Swing, JavaFX & SWT 2
H LayoutManager Panel verschieben sich AWT, Swing, JavaFX & SWT 5
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
S Vaadin: Panel AWT, Swing, JavaFX & SWT 10
R paintComponent malt bei repaint() Rahmen um Panel AWT, Swing, JavaFX & SWT 7
C Etwas durchsichtig machen über einem Panel AWT, Swing, JavaFX & SWT 7
K Panel zu Laufzeit ändern AWT, Swing, JavaFX & SWT 6
T eigene Klasse für Panel AWT, Swing, JavaFX & SWT 9
D Panel aus externer Klasse holen AWT, Swing, JavaFX & SWT 2
L Swing dynamisches Image-Panel in Layout einbinden AWT, Swing, JavaFX & SWT 10
T Listener in anderen Panel deaktivieren AWT, Swing, JavaFX & SWT 3
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
GUI-Programmer Informations-Panel an Label AWT, Swing, JavaFX & SWT 2
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
J JPanel mit anderem Panel aus anderer Klasse setzen AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Panel-Zeichnung erscheint nicht AWT, Swing, JavaFX & SWT 7
S Panel rapaint AWT, Swing, JavaFX & SWT 18
T AffineTransform wirkt sich nur auf dem ersten Panel aus AWT, Swing, JavaFX & SWT 3
K Swing: Panel in Panel erzeugen AWT, Swing, JavaFX & SWT 11
M Panel in SWT einfügen AWT, Swing, JavaFX & SWT 12
T auf Panel zeichnen AWT, Swing, JavaFX & SWT 4
A FormLayout Panel-Breite AWT, Swing, JavaFX & SWT 7
Dit_ "Expandable" Panel ? AWT, Swing, JavaFX & SWT 6
A Panel-Unterklasse funktioniert nicht AWT, Swing, JavaFX & SWT 16
A Panel zu klein AWT, Swing, JavaFX & SWT 14
M Eigenes Panel aus Component? AWT, Swing, JavaFX & SWT 5
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6
B Panel als Bild speichern AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben