JFrame mehrere JPanel – Grafikfehler

Halbblutplins

Grünschnabel
Hallo,

Ich versuche ein Spiel zu progammieren und befasse mich gerade mit dem Menu. Das Problem ist, dass ich gerne mehrere Panel habe, um z.B. die Einstellungen auch ingame zu "starten/aufzurufen". Ich habe eine Klasse für den Hintergrund, die Hauptbuttons (Neu, Weiter, Einstellungen, Ende) und die Einstellungen.

Jetzt veruche ich, diese Panel dem JFrame, welches ein JPanel hat (um die Ebenen festzulegen), hinzuzufügen. Jedoch erscheinen die Buttons nur kurzzeitig oder bei drüberfahren mit dem Cursor (dabei macht der Button repint(); ) . Kurz angemerkt: Der Hintergrund, in meinem Fall Nebel, bewegt sich. Als ich die Nebelbewegung "ausgeschalten" habe, sah man die Buttons konstant.

Nun frage ich, ob jemand von euch eine Idee hätte, wie ich das lösen könnte.

Java:
package Unexpected;

import java.awt.Dimension;

import javax.swing.*;

@SuppressWarnings("serial")
public class GameFrame extends JFrame implements Konstanten {

	GameConfig Config;
	
	JPanel Schichten; 
	
	StartPanel Start;
	SpielPanel Spiel;
	Titlescreen Title;
	Menu Menue;
	Settings Settings;
	
	public GameFrame() {

		Config = new GameConfig();

		System.out.println( Config.getString("SOUNDVOLUME"));
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(FRAMEWIDTH, FRAMEHEIGHT);
        setLocationRelativeTo(null);
        setTitle("Unexpected");
        setVisible(true);
        setResizable(false);
   
        Schichten = new JPanel();
		Dimension size = new Dimension(FRAMEWIDTH, FRAMEHEIGHT);
		Schichten.setLayout(null);
		Schichten.setPreferredSize(size);   Schichten.setMinimumSize(size);
		Schichten.setMaximumSize(size);     Schichten.setSize(size);
        Schichten.setVisible(true);
        getContentPane().add(Schichten,0);
        pack();
	
	}

	public void AddPanel(GamePanel Panel) {
		Schichten.add(Panel,0);Schichten.repaint(); pack();
	}

	public void Startbildschirm() {
		Start = new StartPanel(this);
	}

	public void Spielbildschirm() {
		Spiel = new SpielPanel(this);
	}
	
	public void Titlescreen() {
		Title = new Titlescreen(this);
		AddPanel(Title);
	}
	
	public void Menu() {
		Menue = new Menu(this);
		AddPanel(Menue);
	}
	
	public void Settings() {
		Settings = new Settings(this);
	}
	
	public void Action(int action) {

	if ( action == action_start_weiter ) { remove(Start); Spielbildschirm(); repaint(); }
	
	} 
}
 
Hallo,

ich weiß nicht wie du dein Spiel implementiert hast.
Eine Idee wäre, dass du dein Menu auf der Glasspane des Fensters hinzufügst und darstellst, damit ist es ganz vorne und es sollte keine Probleme mehr geben.

Gruß

Sascha
 
Zurück