Zurück Button -- Background wird nicht angezeigt

Der_Falke_

Mitglied
Hallo liebe Community,

ich habe ein kleineres Problem:
Ich habe in meinem Spiel im Hauptmenü ein Button "Start", wenn man da drauf drückt erscheint ein neues Menü, dort gibt es einen "Zurück" Button. Wenn man diesen ausführt soll man wieder zurück ins Hauptmenü kommen. Ich habe es jetzt so gemacht das einfach alle Buttons, Labels etc auf die Größe 0 gesetzt werden (verschwinden) und dann der "Hauptmenücode" wieder ausgeführt wird, wodurch dann alle Objekte die bei Programmstart schon ausgeführt worden sind wieder erstellt werden. Das funktioniert auch mit Buttons und Labeln, jedoch nicht mit dem Background, der ist einfach nur grau. Wie kann ich es machen das auch der Hauptmenü Background wieder angezeigt wird?

[Java]
public class Frame extends JFrame {


public static void main(String[] args) throws IOException {
Frame frame = new Frame("MineJump");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1400,800);
frame.setResizable(false);
frame.setLocationRelativeTo(null);

Image icon = new ImageIcon(Frame.class.getResource("/Images/icon.png")).getImage();
frame.setIconImage(icon);
frame.setVisible(true);
}



public Frame(String titel) {
super(titel);

hauptmenu();
}


public void hauptmenu() {
JPanel panel = new JPanel();

JLabel background = new JLabel(new ImageIcon(Frame.class.getResource("/Images/menuBackground.png")));
background.setBounds(0,0,1400,800);
panel.add(background);

panel.setLayout(null);

JLabel name = new JLabel();
name.setBounds(237, 50, 926, 156);
name.setIcon(new ImageIcon(Frame.class.getResource("/Images/minejump.png")));

JButton startButton = new JButton(" ");
JButton optionenButton = new JButton(" ");
JButton schliessenButton = new JButton(" ");

startButton.setBounds(300, 260, 798, 80);
startButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/startButton.png")));
startButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/startButtonMouseOver.png")));
startButton.setBorderPainted(false);
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
background.setIcon(new ImageIcon(Frame.class.getResource("/Images/zwischenBackground.png")));
startButton.setBounds(0,0,0,0);
optionenButton.setBounds(0,0,0,0);
schliessenButton.setBounds(0,0,0,0);
name.setIcon(new ImageIcon(Frame.class.getResource("/Images/spiel.png")));
name.setBounds(403, 50, 593, 155);

JButton neuButton = new JButton(" ");
JButton ladenButton = new JButton(" ");
JButton zuruckButton = new JButton(" ");

neuButton.setBounds(300, 260, 798, 80);
neuButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButton.png")));
neuButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButtonMouseOver.png")));
neuButton.setBorderPainted(false);

ladenButton.setBounds(300, 400, 798, 80);
ladenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButton.png")));
ladenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButtonMouseOver.png")));
ladenButton.setBorderPainted(false);

zuruckButton.setBounds(300, 540, 798, 80);
zuruckButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButton.png")));
zuruckButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButtonMouseOver.png")));
zuruckButton.setBorderPainted(false);
zuruckButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
neuButton.setBounds(0, 0, 0, 0);
ladenButton.setBounds(0, 0, 0, 0);
zuruckButton.setBounds(0, 0, 0, 0);
name.setBounds(0, 0, 0, 0);
panel.setBounds(0, 0, 0, 0);
hauptmenu();
}
});

remove(panel);
add(neuButton);
add(ladenButton);
add(zuruckButton);
add(panel);
}
});

optionenButton.setBounds(300, 400, 798, 80);
optionenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButton.png")));
optionenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButtonMouseOver.png")));
optionenButton.setBorderPainted(false);
optionenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("223");
}
});

schliessenButton.setBounds(300, 540, 798, 80);
schliessenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButton.png")));
schliessenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButtonMouseOver.png")));
schliessenButton.setBorderPainted(false);
schliessenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

add(startButton);
add(optionenButton);
add(schliessenButton);

add(name);
add(panel);
}
}
[/Java]

Mit freundlichen Grüßen
Der_Falke_
 

NobbyProg

Mitglied
Ich weiß nicht in wie weit du die mit Layouts auskennst. Ich würde dir empfehlen dir das CardLayout mal anzusehen.
Damit kannst du mehrere JPanels erstellen, die die Elemente deiner verschiedenen Menüs enthalten, erstellen und dann jeweils ein Panel anzeigen lassen anzeigen lassen.
 

Der_Falke_

Mitglied
Ich hatte die Buttons erst in einem Layout angelegt, jedoch war das weitaus mehr Code und ich hatte das Problem das der Background immer die Buttons überschrieben hat, diese wurden immer erst angezeigt nachdem man mit der Maus darüber gegangen ist, deswegen habe ich es dann so gemacht, doch ich kriege es halt jetzt nicht hin das der Hauptmenü Background angezeigt wird wenn man den zurück Button betätigt. Ich habe auch schon verschiedene Sachen ausprobiert. Mal war nur in der Mitte ein Teil des Fensters mit dem neuen Background, mal wurden die Buttons wieder übermalt, etc.
Wie kriege ich also den Zustand des Fensters den das Programm auch hat wenn es gestartet wird?
 

censored

Mitglied
Am besten schreibst du am besten einmal mehrere Methoden, damit das ganze etwas übersichtlicher wird, dann könntest du nämlich einfach die Methode ausführen, die das Hauptmenu anzeigt. ;)
Wenn du nicht mit Layouts zurecht kommst (wäre aber wirklich die beste Variante) dann schlage ich dir vor, vielleicht einmal alle Komponenten, die zum Hauptmenu gehören auf ein JPanel und alle die zum anderen Menu gehören auf ein anderes JPanel zu setzen. Dann kannst du nämlich ganz einfach mit JPanel.setVisible(boolean) Ein Menu ein- bzw. ausblenden.
 

Der_Falke_

Mitglied
Danke @censored !

Funktioniert. Ich habe nun verschiedene Panels angelegt die nach Bedarf einfach nur Visible true oder false gesetzt werden brauchen!

Hier mein jetziger Code:
[Java]
public class Frame extends JFrame {


public static void main(String[] args) throws IOException {
Frame frame = new Frame("MineJump");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1400,800);
frame.setResizable(false);
frame.setLocationRelativeTo(null);

Image icon = new ImageIcon(Frame.class.getResource("/Images/icon.png")).getImage();
frame.setIconImage(icon);
frame.setVisible(true);
}



public Frame(String titel) {
super(titel);

hauptmenu();
}


public void hauptmenu() {
JPanel panelHM = new JPanel();

panelHM.setLayout(null);

JLabel backgroundHM = new JLabel(new ImageIcon(Frame.class.getResource("/Images/menuBackground.png")));
backgroundHM.setBounds(0,0,1400,800);

JLabel nameMinejump = new JLabel();
nameMinejump.setBounds(237, 50, 926, 156);
nameMinejump.setIcon(new ImageIcon(Frame.class.getResource("/Images/minejump.png")));

JButton startButton = new JButton(" ");
JButton optionenButton = new JButton(" ");
JButton schliessenButton = new JButton(" ");

startButton.setBounds(300, 260, 798, 80);
startButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/startButton.png")));
startButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/startButtonMouseOver.png")));
startButton.setBorderPainted(false);
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panelHM.setVisible(false);
spielmenu();
}
});

optionenButton.setBounds(300, 400, 798, 80);
optionenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButton.png")));
optionenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButtonMouseOver.png")));
optionenButton.setBorderPainted(false);
optionenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("223");
}
});

schliessenButton.setBounds(300, 540, 798, 80);
schliessenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButton.png")));
schliessenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButtonMouseOver.png")));
schliessenButton.setBorderPainted(false);
schliessenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

panelHM.add(startButton);
panelHM.add(optionenButton);
panelHM.add(schliessenButton);
panelHM.add(nameMinejump);
panelHM.add(backgroundHM);

add(panelHM);
panelHM.setVisible(true);
}


public void spielmenu() {
JPanel panelSpiel = new JPanel();

panelSpiel.setLayout(null);

JLabel backgroundSpiel = new JLabel(new ImageIcon(Frame.class.getResource("/Images/spielBackground.png")));
backgroundSpiel.setBounds(0,0,1400,800);

JLabel nameSpiel = new JLabel(new ImageIcon(Frame.class.getResource("/Images/spiel.png")));
nameSpiel.setBounds(403, 50, 593, 155);

JButton neuButton = new JButton(" ");
JButton ladenButton = new JButton(" ");
JButton zuruckButton = new JButton(" ");

neuButton.setBounds(300, 260, 798, 80);
neuButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButton.png")));
neuButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButtonMouseOver.png")));
neuButton.setBorderPainted(false);

ladenButton.setBounds(300, 400, 798, 80);
ladenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButton.png")));
ladenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButtonMouseOver.png")));
ladenButton.setBorderPainted(false);

zuruckButton.setBounds(300, 540, 798, 80);
zuruckButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButton.png")));
zuruckButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButtonMouseOver.png")));
zuruckButton.setBorderPainted(false);
zuruckButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panelSpiel.setVisible(false);
hauptmenu();
}
});

panelSpiel.add(neuButton);
panelSpiel.add(ladenButton);
panelSpiel.add(zuruckButton);
panelSpiel.add(nameSpiel);
panelSpiel.add(backgroundSpiel);

add(panelSpiel);
panelSpiel.setVisible(true);
}





}
[/Java]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
E Wie kann ich einen Zurück-Button einfügen Java Basics - Anfänger-Themen 5
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
P Verzweigungen Wert zurück geben Java Basics - Anfänger-Themen 2
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
MiMa Zurück zum Schleifenkopf Java Basics - Anfänger-Themen 6
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Zur Anweisung zurück Java Basics - Anfänger-Themen 13
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
E Methoden Methode liefert keinen Wert zurück Java Basics - Anfänger-Themen 16
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
O Methoden geben nichts zurück Java Basics - Anfänger-Themen 6
F Array abarbeiten und bei Fehler zurück ins Array legen Java Basics - Anfänger-Themen 1
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
N Variablen zurück casten Java Basics - Anfänger-Themen 3
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
T Klassen wie funktionieren Streams, warum bekomme ich int zurück? Java Basics - Anfänger-Themen 2
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
B Warum gibst hier Equals false zurück ? Java Basics - Anfänger-Themen 23
B Input/Output File.length() gibt bei vielen Ordnern 0 zurück Java Basics - Anfänger-Themen 9
C Von einer Exception zurück zum Normalablauf Java Basics - Anfänger-Themen 6
B Array aus Klasse zurück geben Java Basics - Anfänger-Themen 2
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
B eclipse Oberfläche zurück setzen Java Basics - Anfänger-Themen 2
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
L Problem damit, leeren String zurück zu geben Java Basics - Anfänger-Themen 16
M Zahl geschickt in Bit und zurück umwandeln Java Basics - Anfänger-Themen 2
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
N Objekt in String wandeln und zurück Java Basics - Anfänger-Themen 2
R If-Abfrage liefert false zurück, wieso ? Java Basics - Anfänger-Themen 20
S Vom Programm erstelltes Objekt setzt sich nach Programmende auf 0 zurück Java Basics - Anfänger-Themen 10
L LinkedList vorgänger Knoten zurück geben Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
C Array ist befüllt, doch gibt sie immer 0 zurück Java Basics - Anfänger-Themen 3
Luk10 Methode gibt false zurück! Java Basics - Anfänger-Themen 2
Y System.console() liefert immer null zurück. Java Basics - Anfänger-Themen 6
M JDialog soll was an die AufruferKlasse zurück geben Java Basics - Anfänger-Themen 3
J Rekursion über int und array gibt zu wenige Werte zurück Java Basics - Anfänger-Themen 5
O Runden - x/100 liefert long zurück Java Basics - Anfänger-Themen 7
E Jar Dateien zurück in *.java dateien Java Basics - Anfänger-Themen 3
D Thread gibt nur jeden 2. Wert zurück Java Basics - Anfänger-Themen 2
H2SO3- int. (utf8) zurück in zeichen verwandeln Java Basics - Anfänger-Themen 5
K Objekte zurück parsen Java Basics - Anfänger-Themen 2
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
C String in Int umwandeln // Von Int wieder in String zurück Java Basics - Anfänger-Themen 10
C HashMap liefert HashMap zurück - incompatible types Java Basics - Anfänger-Themen 2
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
M Werte aus Jcombobox sollten als int-Werte zurück gegeben . Java Basics - Anfänger-Themen 7
G date in sekunden umwandeln und wieder zurück. Java Basics - Anfänger-Themen 6
F Was gibt der Buffered Reader zurück bei Dateiende? Java Basics - Anfänger-Themen 2
G JInternalFrame FensterInFenster-resizable ?Springt zurück! Java Basics - Anfänger-Themen 4
T Aus dem package zurück auf die Root Ebene Java Basics - Anfänger-Themen 2
D Zurück in die Zukunft oder wie man Zeitpunkte berechnet Java Basics - Anfänger-Themen 2
E von JFrame zu JPanel und wieder zurück . Java Basics - Anfänger-Themen 9
M long in byte[] konvertieren und wieder zurück Java Basics - Anfänger-Themen 2
F Kontrolle des Programms an Frame übergeben und wieder zurück Java Basics - Anfänger-Themen 2
Nils_Langner jni gibt keinen Wert zurück :( Java Basics - Anfänger-Themen 2
N JOptionPane.showInputDialog gibt null zurück Java Basics - Anfänger-Themen 9
T ComboBox.GetSelectedIndex() gibt immer nur 0 zurück. Java Basics - Anfänger-Themen 2
G Servlet gibt über request nur null zurück Java Basics - Anfänger-Themen 3
F Long zu 2 int und zurück Java Basics - Anfänger-Themen 3
L Ablauf abbrechen und zurück Java Basics - Anfänger-Themen 20
G GregorianCalendar (vor und zurück) Java Basics - Anfänger-Themen 7
ven000m in tiefere klasse zurück greifen Java Basics - Anfänger-Themen 3
G Verschiedene Datentypen in Vector packen und zurück Java Basics - Anfänger-Themen 3
T Zurück zu System.out Java Basics - Anfänger-Themen 20
G Strings ab einem bestimmten Index zurück geben! Java Basics - Anfänger-Themen 3
Maxq Klassen Actionen in Button implementieren Java Basics - Anfänger-Themen 6
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
Tom/S Button info Java Basics - Anfänger-Themen 2
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
T JSP, Button-Color change. Java Basics - Anfänger-Themen 1
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
S Counter Label Button Java Basics - Anfänger-Themen 4
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
J Button als Feld nutzen Java Basics - Anfänger-Themen 17
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
B Button soll sowohl auf Klicken als auch auf die Enter-Taste reagieren Java Basics - Anfänger-Themen 9
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben