JPanel in Applet zeigt Inhalt nicht an

Hallo mal wieder :frowning:

Ich bin wieder mal am Ende meines Lateins. An sich ist alles recht simpel:
In meinem Applet rufe ich von einer Controllerklasse eine Methode auf die mir folgendes JPanel erzeugt:

public Loading(int appletWidth, int appletHeight) {
		
		super(new BorderLayout());
		
		//Größe festlegen
		WIDTH 	= appletWidth/3;
		HEIGHT 	= appletHeight/2;
		
		
		//Komponenten des Panels		
		userData 		= new JTextField(8);
		userKey 		= new JPasswordField(30);
		logIn			= new JButton("Einloggen");
		progressLabel 	= new JLabel("Lade Bewertungsmodell...");
		progressBar 	= createProgressBar();
		
		//Größen festlegen
		//Size.resize(userData);
		//Size.resize(userKey);
		//Size.resize(logIn);
		
		
		//Alignments setzen
		//userData.setAlignmentX(LEFT_ALIGNMENT);
		//userKey.setAlignmentX(LEFT_ALIGNMENT);
		//logIn.setAlignmentX(LEFT_ALIGNMENT);
		//progressLabel.setAlignmentX(LEFT_ALIGNMENT);
		
		
		//Panel erstellen
		Box progressPanel = Box.createVerticalBox();
		
		progressPanel.add(Box.createVerticalGlue());
		progressPanel.add(userData);		
		progressPanel.add(Box.createVerticalStrut(10));
		progressPanel.add(userKey);		
		progressPanel.add(Box.createVerticalStrut(10));
		progressPanel.add(logIn);				
		progressPanel.add(Box.createVerticalStrut(20));
		progressPanel.add(progressLabel);
		progressPanel.add(Box.createVerticalStrut(10));
		progressPanel.add(progressBar);
		progressPanel.add(Box.createVerticalGlue());
		
		
		//Panel hinzufügen
		add(progressPanel);
		
		
		setBounds(WIDTH, HEIGHT/2, WIDTH, HEIGHT);
		setBorder(new TitledBorder(null, "Anmelden", TitledBorder.LEFT, TitledBorder.TOP, boldFont));
		repaint();
		
		System.out.println(progressPanel.getY());
	}

Das Panel wird auch hinzugefügt, Border ist sichtbar und schön mittig sitzt es auch. Allerdings wird das progressPanel nicht angezeigt, und ich kann mir darauf keinen Reim machen. Wenn das Panel nach dem Einloggen verschwindet passiert folgendes im Controller:

                   anApplet.getContentPane().remove(load); //Ladepanel
			anApplet.getContentPane().add(main); //Hauptpanel in welchem alle weiteren Komponenten angezeigt werden
			main.loggedIn();
			anApplet.repaint();

In main werden alle Komponenten angezeigt. Vielleicht sieht ja hier einer den Fehler den ich mache :slight_smile:
Grüße,
Ace

Wenn du zur Laufzeit Komponenten entfernst und andere hinzufügst, musst du danach nicht repaint() sondern validate() auf dem bearbeiteten Container aufrufen.
Der Rest ist scheinbar ein Problem bei der Anwendung von [japi]BoxLayout[/japi].
Im Wiki gibts auch ein Tutorial: BoxLayout

Dank validate() wird jetzt alles angezeigt außer dem Border. Jetzt fühle ich mich schon ein bischen veräppelt, das war doch vorher das einzige was angezeigt wurde :open_mouth:

Dann schreib mal:

anApplet.repaint();```

Sehr schlau, dankeschön :slight_smile:

Die Methoden muss ich mir mal genauer anschauen, bin sehr lange davorgesessen und es war doch so einfach…

Am besten schaust du dir auch gleich mal das CardLayout an…
Und das CardLayout-Tutorial im Byte-Welt-Wiki.