$
$$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:
Die wichtigen Stellen sind mit Rot markiert, währe für eure Hilfe sehr dankbar.
MfG:
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: