Hallo zusammen,
ich bin gerade dabei an dem Menü von meinem Bomberman Projekt zu arbeiten.
Mein Problem ist, dass sich beim drücken eines buttons das bild nicht ändert, außer wenn man das Fenster minimiert und wieder vergrößert.
Hier ein Teil des Codes:
ich bin gerade dabei an dem Menü von meinem Bomberman Projekt zu arbeiten.
Mein Problem ist, dass sich beim drücken eines buttons das bild nicht ändert, außer wenn man das Fenster minimiert und wieder vergrößert.
Hier ein Teil des Codes:
Java:
import java.awt.*; //importieren der awt-bibliothek
import java.awt.event.*;
public class main extends Frame implements KeyListener, Runnable, ActionListener // erstellen der Klasse main
{
int menüs=1;
map1 map = new map1();
player1 pl1 = new player1();
player2 pl2 = new player2();
Image dbImage;
Button button1 = new Button( "Play again!");
Button button2 = new Button( "Play!");
Button button3 = new Button( "Map 1");
Button button4 = new Button( "Map 2");
Button button5 = new Button( "Map 3");
Graphics dbGraphics;
Component comp;
boolean button=true,buttonge2=true,buttonge3=true,menü=true;
public main()
{
setTitle("Bomberman");
setSize(756,678);
addWindowListener(new TestWindowListener());
setVisible(true);
setFocusable(true);
setResizable(false);
addKeyListener(this);
setLayout(null);
}
public static void main (String args[]){
main main = new main();
new Thread(main).start();
}
public void run(){//Thread
while(menü==true){
try{//try catch schleife zum warten
Thread.sleep(20);
}
catch(Exception e){}
if(buttonge2==true){
if(menüs==1){
button2.setBounds(330,440,70,50);
add(button2);
button2.addActionListener(this);
buttonge2=false;
}
}
if(buttonge3==true){
if(menüs==2){
button3.setBounds(340,340,70,30);
add(button3);
button3.addActionListener(this);
button4.setBounds(340,440,70,30);
add(button4);
button4.addActionListener(this);
button5.setBounds(340,540,70,30);
add(button5);
button5.addActionListener(this);
buttonge3=false;
}
}
}
while(true){
try{//try catch schleife zum warten
Thread.sleep(20);
}
catch(Exception e){}
if(pl1.running==false&pl2.running==false){
if(button==true){
button1.setBounds(340,440,70,30);
add(button1);
button1.addActionListener(this);
button=false;
}
}
repaint();
}
}
public void paint(Graphics g){
super.paint(g);
if(menü==true){
if(menüs==1)
g.drawImage(Toolkit.getDefaultToolkit().getImage("menüs1.jpg"),3,25, comp);
if(menüs==2){
requestFocus();
g.drawImage(Toolkit.getDefaultToolkit().getImage("menüs2.png"),3,25, comp);
}
}
if(menü==false){
map.paint(g);
pl1.paint(g);
pl2.paint(g);
}
}
public void update(Graphics g)
{
//double-buffer initialisieren
if (dbImage == null) {
dbImage = createImage(
this.getSize().width,
this.getSize().height);
dbGraphics = dbImage.getGraphics();
}
//hintergrund löschen
dbGraphics.setColor(getBackground());
dbGraphics.fillRect(
0,
0,
this.getSize().width,
this.getSize().height
);
//vordergrund zeichnen
dbGraphics.setColor(getForeground());
paint(dbGraphics);
//offscreen anzeigen
g.drawImage(dbImage,0,0,this);
} public void actionPerformed (ActionEvent e){
if(e.getSource() == this.button1){
button1.removeActionListener(this);
remove(button1);
map.restartMap(mapnr);
button=true;
pl1 = new player1();
pl2 = new player2();
pl1.win=false;
pl2.win=false;
pl1.leben=3;
pl2.leben=3;
pl1.running=true;
pl2.running=true;
pl1.start();
pl2.start();
}
if(e.getSource() == this.button2){
button2.removeActionListener(this);
remove(button2);
menüs=2;
}
if(e.getSource() == this.button3){
button3.removeActionListener(this);
remove(button3);
button4.removeActionListener(this);
remove(button4);
button5.removeActionListener(this);
remove(button5);
pl1 = new player1();
pl2 = new player2();
mapnr=0;
map.restartMap(mapnr);
pl1.start();
pl2.start();
menü=false;
requestFocus();
}
if(e.getSource() == this.button4){
button3.removeActionListener(this);
remove(button3);
button4.removeActionListener(this);
remove(button4);
button5.removeActionListener(this);
remove(button5);
pl1 = new player1();
pl2 = new player2();
mapnr=1;
map.restartMap(mapnr);
pl1.start();
pl2.start();
menü=false;
requestFocus();
}
if(e.getSource() == this.button5){
button3.removeActionListener(this);
remove(button3);
button4.removeActionListener(this);
remove(button4);
button5.removeActionListener(this);
remove(button5);
pl1 = new player1();
pl2 = new player2();
mapnr=2;
map.restartMap(mapnr);
pl1.start();
pl2.start();
menü=false;
requestFocus();
}
}