Buttons und Label nicht im Vordergrund

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Habe folgende Klassen:

Code:
public class BackgroundPanel extends JPanel {
	
	private MenuPanel p_menu = new MenuPanel();
	private GamePanel p_game = new GamePanel();
	private HighscorePanel p_highscores = new HighscorePanel();
	private JLabel l_bgImage = new JLabel(new ImageIcon("background.jpg"));
	
	public BackgroundPanel(){
		initPanel();
		initL_bgImage();
		addComponents();
	}
	
	public void initPanel(){
		setBounds(0, 0, Game.WIDTH, Game.HEIGHT + 100);
		setVisible(true);		
	}
	
	public void initL_bgImage(){
		l_bgImage.setBounds(0, 0, Game.WIDTH, Game.HEIGHT + 100);
	}
	
	public void addComponents(){
		add(l_bgImage);
		add(p_menu);
		add(p_game);
		add(p_highscores);
	}
	
	public JLabel getL_bgImage(){
		return l_bgImage;
	}
	
	public MenuPanel getP_menu(){
		return p_menu;
	}
	
	public GamePanel getP_game(){
		return p_game;
	}
	
	public HighscorePanel getP_highscores(){
		return p_highscores;
	}
	
}
Code:
public class MenuPanel extends JPanel {
	
	private String directory = "D:\\My Documents\\Programs\\Games & Fun\\Saloon Gunners\\gui\\";
	private JLabel l_header = new JLabel(new ImageIcon("saloon_gunners.gif"));
    private JButton b_startGame = new JButton("Start Game");
    private JButton b_viewHighscores = new JButton("View Highscores");
	private JButton b_exit = new JButton("Exit");
	
    public MenuPanel(){
    	initPanel();
    	initComponents();
    	addComponents();
    }
    
    public void initPanel(){
    	setBounds(0, 0, Game.WIDTH, Game.HEIGHT);
    	setLayout(null);
    	setOpaque(false);
    }
    
    public void initComponents(){   	
    	l_header.setBounds(200, 30, 400, 150);
    	b_startGame.setBounds(300, 160, 200, 100);
    	b_viewHighscores.setBounds(300, 265, 200, 100);
    	b_exit.setBounds(300, 370, 200, 100);  	
    }
    
    public void addComponents(){
    	add(l_header);
    	add(b_startGame);
    	add(b_viewHighscores);
    	add(b_exit);
    }
    
}

Und hier der MainFrame für die Panels:

Code:
public class MainFrame extends JFrame {
    
    private Controller sysController = new Controller();
    private BackgroundPanel p_background = new BackgroundPanel();
    
    public MainFrame(Controller sysController) {
        this.sysController = sysController;
        initFrame();
        getContentPane().add(p_background);
    }

    private void initFrame(){    	
        setVisible(false);
        setTitle("Saloon Gunners");
        setLayout(null);
        setSize(Game.WIDTH, Game.HEIGHT + 100);
        setResizable(false);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);       
        setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        setVisible(true);   
    }
    
}

P.S.: sysController, GamePanel und HighscorePanel habe ich mal weggelassen, die Spielen heir nicht so die Rolle. Das Problem ist nämlich, dass beim Anzeigen des MainFrame die Buttons und das Label vom MenuPanel nicht angezeigt werden. Die Buttons werden erst sichtbar, wenn man die Maus drüberbewegt, das Label überhaupt nicht.
Nach Minimieren und Maximieren muss man das gleiche Spiel wiederholen.

Das MenuPanel mit seinen Komponenten sollte aber von alleine Sichtbar sein.

Was fehlt?
 
G

Gast

Gast
Gibt es denn keine Möglichkeit vielleicht in meinem BackgroundPanel die Reihenfolge (Vordergrund, Hintergrund) meiner Kinder-Panels und vor allem des l_bgImage festzulegen?
 
G

Gast

Gast
Wildcard hat gesagt.:
Swing und AWT lässt sich nicht wirklich mischen.
Wo und warum verwendest du AWT?

Ich verwende doch kein AWT.
JPanels sind doch Swing-Klassen, genauso wie die JButtons und JLabels, die ich verwende.
 

Wildcard

Top Contributor
Gibt es denn keine Möglichkeit vielleicht in meinem BackgroundPanel die Reihenfolge (Vordergrund, Hintergrund) meiner Kinder-Panels und vor allem des l_bgImage festzulegen?
Einfache Regel:
was zuletzt gezeichnet wird liegt ganz oben.
Wieso wird dein Menu überhaupt verdeckt? Welche Komponente liegt da drüber?
 
G

Gast

Gast
Wildcard hat gesagt.:
Einfache Regel:
was zuletzt gezeichnet wird liegt ganz oben.
Wieso wird dein Menu überhaupt verdeckt? Welche Komponente liegt da drüber?

Ach so, der letzte kommt zuerst. Warte, ich überprüfe das mal.
 
G

Gast

Gast
Also, ich hab das mal geändert. Beim BackgroundPanel wird das Menu Panel jetzt erst zum Schluss geadded. Trotzdem ist es immer noch das selbe Problem.

Wildcard hat gesagt.:
Wieso wird dein Menu überhaupt verdeckt? Welche Komponente liegt da drüber?

Ob's wirklich verdeckt ist, weiß ich nicht genau, sieht jedenfalls so aus. Wie gesagt, ich muss erst immer die Maus drüberbewegen, damit die Buttons auf dem MenuPanel sichtbar werden.
 

Wildcard

Top Contributor
Wenn du dir sicher bist kein AWT zu nutzen, dann nochmal die andere Frage:
Überschreibst du irgendwelche paint, paintComponent,... Methoden?
 
G

Gast

Gast
Nein, aber hier noch die Klasse GamePanel. Wie du siehst, lade ich nur ein paar Images in ein Array und wende den MediaTracker auf sie an. Sollte doch eigentlich nicht schaden, oder?

Code:
public class GamePanel extends JPanel {
	
	private Image[] targetImages = new Image[Game.MAX_TARGETS];
	
	public GamePanel(){
		initPanel();
		initTargetImages();
	}
	
	public void initPanel(){
		setBounds(0, 0, Game.WIDTH, Game.HEIGHT);
		setLayout(null);
		setOpaque(false);
	}
	
	public void initTargetImages(){
		
		targetImages[0] = getToolkit().getImage("target1.gif");
		targetImages[1] = getToolkit().getImage("target2.gif");
		targetImages[2] = getToolkit().getImage("target3.gif");
		targetImages[3] = getToolkit().getImage("target4.gif");
		targetImages[4] = getToolkit().getImage("target5.gif");
		
		MediaTracker mediaTracker = new MediaTracker(this);
		for(int i = 0; i < targetImages.length; i++){
			mediaTracker.addImage(targetImages[i], i);
		}
		try{
			mediaTracker.waitForAll();
		} catch (InterruptedException e){
			
		}
		
	}

}
 

Wildcard

Top Contributor
Kann mir noch nicht so richtig vorstellen wie das Problem aussieht. Kannst du mir eine PN mit deinen Klassen schicken das ich mir das selbst mal ansehe?
 

Nerowinger

Mitglied
Super!!! :D :D :D :D :D :D

Ich hab's jetzt.

Das Beispiel hat mir sehr geholfen. Alles funktioniert jetzt genauso wie geplant!

Vielen, vielen Dank, du hast mir echt viele Stunden erspart.



Gruß Nerowinger

:D :D :D :D :D :D :D :D :D
:D :D :D :D :D :D :D :D :D
 

Wildcard

Top Contributor
*geehrt sein* 8)
Damit alle was davon haben:
Code:
public class Main extends JFrame
{
    public Main()
    {
        setSize(1024,768);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null);
        JLayeredPane pane = new JLayeredPane();
        pane.setBounds(0,0,1024,768);
        pane.add(createBackground(),JLayeredPane.DEFAULT_LAYER);
        pane.add(new MenuPanel(),JLayeredPane.MODAL_LAYER);
        add(pane);
        setVisible(true);
    }

    /**
     * @return label
     */
    private JLabel createBackground()
    {
        JLabel label = new JLabel(new ImageIcon("hier dein Hintergrundbild einsetzen"));
        label.setBounds(0,0,getWidth(),getHeight());
        return label;
    }

    public static void main(String[] args)
    {
        Main m = new Main();
    }
}


public class MenuPanel extends JPanel
{
    public MenuPanel()
    {
        setLayout(null);
        setBounds(200,200,100,100);
        JButton button = new JButton("TestButton");
        button.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                // TODO Auto-generated method stub

            }
        });
        button.setBounds(0,0,100,100);
        add(button);
    }
  
}
 

Nerowinger

Mitglied
PS: Ich konnte die Klassen sogar so lassen, wie sie waren. Musste nur dafür sorgen, dass BackgroundPanel einen JLayeredPane extendet. Dann beim adden der Panels das l_bgImage einfach als DEFAULT_LAYER, das MenuPanel und die anderen Panels als MODAL_LAYER adden. Ach ja, und die Visibility des MainFrame erst ganz zum Schluss setzen.

Das neue war wirklich das mit dem JLayeredPane, was ich mir zum Verständnis noch mal in der Java-Doku anschauen werde.

Danke noch mal.

Gruß Nerowinger
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
volcanos SpringLayout mit zusätzlichen Buttons außerhalb des SpringLayout AWT, Swing, JavaFX & SWT 33
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
O Swing JOptionPane.showOptionDialog - Wie kann ich Buttons größer machen AWT, Swing, JavaFX & SWT 10
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
J TicTacToe Buttons AWT, Swing, JavaFX & SWT 14
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
C Buttons funtionieren nicht AWT, Swing, JavaFX & SWT 10
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
Neumi5694 Sprache der Standard-Buttons AWT, Swing, JavaFX & SWT 7
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
H JavaFX TableCell mit Buttons AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
T Buttons auf Tablet viel kleiner als am PC AWT, Swing, JavaFX & SWT 0
S Buttons und TextField automatisch vergrößern AWT, Swing, JavaFX & SWT 8
R 2D-Grafik Buttons mit Slick2D und LWJGL AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
JG12111989 Buttons funktionieren nicht AWT, Swing, JavaFX & SWT 4
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M 4-Gewinnt mit Buttons AWT, Swing, JavaFX & SWT 1
Y Kann man Buttons in einem JFrame rund machen ? AWT, Swing, JavaFX & SWT 2
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
W Buttons verschieben AWT, Swing, JavaFX & SWT 3
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
P Buttons/Labels auf GUI positionieren AWT, Swing, JavaFX & SWT 2
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
U Buttons schräg implementieren AWT, Swing, JavaFX & SWT 4
X buttons aus externe klasse lesen? AWT, Swing, JavaFX & SWT 3
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6
K Event Handling 2 Buttons und Thread stop AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
D Wie kann ich Buttons und Labels besser anordnen AWT, Swing, JavaFX & SWT 4
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
M Menü mit Buttons AWT, Swing, JavaFX & SWT 8
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
U Swing Buttons generieren AWT, Swing, JavaFX & SWT 19
G Swing Buttons in Layouts frei platzieren AWT, Swing, JavaFX & SWT 7
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
B Buttons auf JLabel? AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
1 Buttons in Kombination mit Linien AWT, Swing, JavaFX & SWT 3
K Aussehen des Buttons resetten AWT, Swing, JavaFX & SWT 4
C Verschiebbare "Buttons" in einer Tabelle AWT, Swing, JavaFX & SWT 3
A JButton - Klicks zählen auf mehreren Buttons AWT, Swing, JavaFX & SWT 2
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
dzim Toolbar - Problem bei enable/disable von Buttons AWT, Swing, JavaFX & SWT 6
F Grafik mit Buttons versehen AWT, Swing, JavaFX & SWT 8
J JOptionPane mit zwei Buttons?! AWT, Swing, JavaFX & SWT 3
K Schachbrett mit buttons AWT, Swing, JavaFX & SWT 2
B Buttons entfernen / hinzufügen AWT, Swing, JavaFX & SWT 5
TheWhiteShadow Swing Buttons in Liste AWT, Swing, JavaFX & SWT 7
C AWT Buttons verschwinden, wenn Fenster Vollbild gesetzt wird AWT, Swing, JavaFX & SWT 38
C AWT Verwendung von Buttons in Spielen AWT, Swing, JavaFX & SWT 8
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
E Calendar GUI Buttons AWT, Swing, JavaFX & SWT 4
M 2 Buttons mit derselben Breite AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen


Oben