Frage von Bohne999, 17

Java. Wie lege ich ein JPanel über ein anderes?

Ich habe in Java mit Swing Snake programmiert. Jetzt möchte ich, dass wenn der Spieler in sich selber reinfährt also verliert ein weiteres JPanel sich über das andere legt und dort ein Text ist mit "Game Over". Ich habe ein Klasse geschrieben, welche vom JPanel erbt und alles drin hat was ich möchte. Aber wenn ich versuche    das zu dem "Main-Panel" hinzuzufügen passiert nichts. Kann mir jemand helfen? Liegt das daran das ich die Methode paintComponent verwende?

Expertenantwort
von KnusperPudding, Community-Experte für Java, 7

Als allererstes wäre es gut, wenn du Code nicht als Bild postest. Sondern möglichst so, dass man dein Beispiel Per C&P raus kopieren, testen, und ergänzen kann.  - Entweder per Codefunktion oder per pastebin.com/pastie.org.

Zum Code selbst: Das ist relativ wenig Information. Da es nur Bilder sind.

Eine Option wäre es, einfach per "Hinzu zufügen" via Add. Aber das scheint bei dir aus irgend einem Grund nicht zu funktionieren.

Bei diesem Beispiel füge ich einem Frame zwei Panels an. erst ein Grünes, dann ein Rotes. Sichtbar wäre dann nur das, was zuletzt angefügt wäre.

JFrame frame = new JFrame();

JPanel greenPanel = new JPanel();
greenPanel.setBackground(Color.green);
JPanel redPanel = new JPanel();
redPanel.setBackground(Color.red);
frame.add(greenPanel);
frame.add(redPanel);
frame.setSize(200, 200);
frame.setVisible(true);
Kommentar von Bohne999 ,

Okay erstmal Danke für deine Antwort :) Wenn ich als Hintergrundfarbe eine transparente Auswähle ist es dann durchsichtig?

Kommentar von KnusperPudding ,

Transparent denke ich meiner Meinung nach nicht.

Aber sofern du zwischen Frames hin und scher halten willst, empfehle ich dir einen Blick auf das "CardLayout":

http://stackoverflow.com/questions/9371460/how-can-i-stack-overlay-jpanels-in-ja...

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten