Variablen JLabel backImagePanel Fehlermeldung

Hallo liebe Forenmitglieder,
ich bin neu hier im Forum und möchte gerne um Hilfe bitten.
Ich habe in Java angefangen für ein Schulprojekt ein kleines Spiel zu programmieren.
Nun wollte ich Bilder in Frames mithilfe von JPanel hinzufügen.
Ich habe mehrere Frames in einer Klasse erstellt.
Als ich ich jedoch ein zweites Bild in ein weiteres JFrame hinzugefügt habe, meldete Java ein Problem mit dem JLabel backImagePanel.
Also habe ich versucht JLabel zweimal zu deklarieren, jedoch nimmt Java dies nicht an.
Weiß jemand wo mein Problem liegt und kann mir hierbei helfen?

Code:
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Startklasse implements ActionListener {

JButton BStart;
JButton BScore;
JButton BgfScore;
JButton Bsl;

JFrame f;
JFrame gf;
JFrame gf1;

Icon iconStart;
Icon iconGame;
Icon iconScore;
JPanel p;
JPanel p1;
JLabel b;
JLabel b1;

public static void main(String[] args) {
(new Startklasse()).go();
}

private void go() {

f=new JFrame();
f.setSize(850,670);
f.setLayout(null);
f.setTitle("Whack a Mole");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

p= new JPanel();
JLabel backImagePanel = new JLabel(new ImageIcon("C:\\Users\\User1\\Pictures\\Whack a mole titelbild.jpg"));
p.setBounds(0, 0, 850, 670);
p.add(backImagePanel);
f.add(p);

gf=new JFrame();
gf.setSize(850,670);
gf.setLayout(null);
gf.setTitle("Whack a Mole - Start Game");
gf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

p1= new JPanel();
JLabel backImagePanel = new JLabel(new ImageIcon("C:\\Users\\User1\\Pictures\\Spielfeld Whack a mole.jpg"));
p1.setBounds(0, 0, 850, 670);
p1.add(backImagePanel);
gf.add(p1);

BStart= new JButton();
BStart.setBounds(300, 200, 200, 50);
BStart.setText("Start Game");
BStart.addActionListener(this);
f.add(BStart);

BScore = new JButton();
BScore.setBounds(300, 300, 200, 50);
BScore.setText("Score");
BScore.addActionListener(this);
f.add(BScore);

gf1=new JFrame ();
gf1.setSize(500,500);
gf1.setLayout(null);
gf1.setTitle("Whack a Mole - Highscorelist");
gf1.dispose();

BgfScore= new JButton();
BgfScore.setBounds(500, 50, 150, 50);
BgfScore.setText("Go to Scorelist");
BgfScore.addActionListener(this);
gf.add(BgfScore);

Bsl= new JButton();
Bsl.setBounds(150,350,200,50);
Bsl.setText("Back to main menu");
Bsl.addActionListener(this);
gf1.add(Bsl);


f.setVisible(true);
}

-> den Teil mit ActionPerformed habe ich hier mal weggelassen.
Java meldet mir bei der rot angegebenen Stelle "Duplicate local variable backImagePanel"
Vielen Dank für hilfreiche Antworten
LG Sweetmuffin98
 
Zuletzt bearbeitet:
JLabel backImagePanel = new JLabel(new ImageIcon("C:\\Users\\User1\\Pictures\\Whack a mole titelbild.jpg"));
JLabel backImagePanel = new JLabel(new ImageIcon("C:\\Users\\User1\\Pictures\\Spielfeld Whack a mole.jpg"));

Du hast die beide gleich genannt, und das mag Java nicht 😀 so wie ich das auf die schnelle sehe musst du bloß eins umbenennen 😀

Oder, wenn du das erste überschreiben willst das 'JLabel' vor dem Namen beim zweiten wegnehmen.
 

Zurück
Oben