JPanel mit Bild

$

$$Money$$

Hallo,

Ich hab ein Problem, ich habe ein zwites Frame Names "spielsteuerung" in diesem Frame soll ein Bild mit Hilfe eines JPanels angezeigt werden mit dem namen "b_steuerung". Jedoch wird dieses Bild nicht angezigt.

Hier mein Code:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CarCrash extends JFrame {
//Variabeln	
	static CarCrash fenster;
	Bildleinwand bildanzeige;
	Bildleinwand2 bildanzeige2;
	
	Image b_car;
	Image b_street;
	Image b_police;
	Image b_steuerung;
	
	int police_xpos = 750;
	int police_ypos = 0;	
	int car_xpos = 700;
	int car_ypos = 635;
//Ende
//Komponenten zur Menüsteuerung
  class CMeinActionLauscher implements ActionListener {
    public void actionPerformed(ActionEvent e) {
		String label;
		
		label = e.getActionCommand();
		
		if(label.equals("Beenden")){
			System.exit(0);
		}
		
		if(label.equals("Spielsteuerung")){
			spielsteuerung();
		}
    }
  }
//Ende
//Konstruktor für das Hauptframe
  CarCrash(String titel) {
    super(titel);

    setLayout(new GridLayout());
	
	bildanzeige = new Bildleinwand();
	add(bildanzeige);
	
	JMenuBar menueleiste = new JMenuBar();
	setJMenuBar(menueleiste);
	
	JMenu menu1 = new JMenu("Datei");
	JMenu menu2 = new JMenu("Hilfe");
	
	JMenuItem item1 = new JMenuItem("Beenden");
	JMenuItem item2 = new JMenuItem("Optionen");
	JMenuItem item3 = new JMenuItem("Spielsteuerung");
	JMenuItem item4 = new JMenuItem("Neues Spiel");	
	JMenuItem item5 = new JMenuItem("Pause");

	menu1.add(item4);
	menu1.add(item5);
	menu1.add(item2);
	menu1.add(item1);
	menu2.add(item3);
	
	
	menueleiste.add(menu1);
	menueleiste.add(menu2);
	
	item1.addActionListener(new CMeinActionLauscher());
	item2.addActionListener(new CMeinActionLauscher());
	item3.addActionListener(new CMeinActionLauscher());
	item4.addActionListener(new CMeinActionLauscher());
	item5.addActionListener(new CMeinActionLauscher());

    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
//Ende
//Bilder laden
	ImageIcon tmp1 = new ImageIcon("img/street.png");
	b_street = tmp1.getImage();
	
	ImageIcon tmp2 = new ImageIcon("img/car.png");
	b_car = tmp2.getImage();
	
	ImageIcon tmp3 = new ImageIcon("img/police.png");
	b_police = tmp3.getImage();
	
	ImageIcon tmp4 = new ImageIcon("img/steuerung.png");
	b_steuerung = tmp4.getImage();
//Ende
//Komponenten zum Steuern des Fehrzeuges	
	this.addKeyListener(new KeyAdapter(){
	@Override
	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == 39){
			car_xpos += 5;
			bildanzeige.repaint();
			
		if(car_xpos > 879) {
			car_xpos = 878;
		}
		}		
		
		if(e.getKeyCode() == 37){
			car_xpos -= 5;
			bildanzeige.repaint();
			
		if(car_xpos < 60) {
			car_xpos = 59;
		}
		}
		
		if(e.getKeyCode() == 38){
			car_ypos -= 5;
			bildanzeige.repaint();
			
		if(car_ypos < 1) {
			car_ypos = 1;
		}
		}
		
		if(e.getKeyCode() == 40){
			car_ypos += 5;
			bildanzeige.repaint();
			
		if(car_ypos > 640) {
			car_ypos = 639;
		}
		}
	}	
});
//Ende
	bildanzeige.repaint();
  }	

  public static void main(String[] args) { 
    CarCrash fenster = new CarCrash("Car Crash");
    fenster.pack();
    fenster.setSize(1000,800);
    fenster.setVisible(true);
	fenster.setResizable(false);
  }
//JPanel Komponente zum Anzeigen der Bilder
  class Bildleinwand extends JPanel {
	  public void paintComponent(Graphics g) {
		super.paintComponent(g);
		
		g.drawImage(b_street,0,0,1000,800, this);
		g.drawImage(b_car,car_xpos,car_ypos,60,110, this);
		g.drawImage(b_police,police_xpos,police_ypos,60,110,this);
		
		setPreferredSize(new Dimension(1000, 800));
		setMinimumSize(new Dimension(1000, 800));
		setMaximumSize(new Dimension(1000, 800));
	
	}
}
//Ende 1 Bildleinwand 
  class Bildleinwand2 extends JPanel {
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		  
		g.drawImage(b_steuerung,0,0,500,500,this);
		
		setPreferredSize(new Dimension(500, 500));
		setMinimumSize(new Dimension(500, 500));
		setMaximumSize(new Dimension(500, 500));
	}
  }

//Ende
//Frame zur Spielsteuerung 
  public void spielsteuerung(){
	  
	setLayout(new GridLayout());
	
	bildanzeige2 = new Bildleinwand2();
	add(bildanzeige2);
	bildanzeige2.repaint();
	
	JFrame steuerung = new JFrame("Spielsteuerung");
	steuerung.pack();
             steuerung.setSize(500,500);
             steuerung.setVisible(true);
	steuerung.setResizable(true);
  }
//Ende
}

Die wichtigen Stellen sind mit Rot markiert, währe für eure Hilfe sehr dankbar.

MfG:
 
Zurück