Bouton ne s'exécute pas

Bonjour,

J'ai un petit problème lors de l'exécution d'un bouton. En effet je programme un jeu de type Mario est lorsque mon personnage meurt, j'affichage une image Game-Over et un bouton "Rejouer" permettant de relancer le jeu. Cependant rien ne se passe lorsque je clique sur celui-ci.

Ci-joint le code de ma fenêtre ;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.io.File;
import java.awt.Graphics;
import java.awt.Image;
import java.io.DataInputStream;
import java.io.InputStream;
import java.io.ByteArrayInputStream;

public class Fenetre extends JFrame implements KeyListener,Runnable, ActionListener
{
	private Panneau pan;
	private JLabel scor, vie;
	private Thread t;
	private boolean droite, gauche, saut,lance;
	private JButton jouer,son,rejouer;
	private boolean pause;
	private Sound s;
	
	public Fenetre()
	{
		this.setTitle("Wild Geologist");
		this.setSize(new Dimension(800,600));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		

		pan=new Panneau();
		pan.setLayout(null);
		this.setContentPane(pan);

		scor=new JLabel("Score : " + pan.getScore());
		scor.setForeground(Color.white);
		vie=new JLabel("Vies :");
		vie.setForeground(Color.white);

		scor.setBounds(10,10,100,15);
		vie.setBounds(150,10,100,15);

		jouer = new JButton ("Jouer");
		jouer.setBackground(Color.green);
		jouer.setBounds(300,300,150,50);
		pan.add(jouer);
		jouer.addActionListener(this);

		son = new JButton ("Son off");
		son.setBackground(Color.green);
		son.setBounds(600,500,75,15);
		pan.add(son);
		son.addActionListener(this);

		rejouer = new JButton ("Rejouer");
		rejouer.setBackground(Color.white);
		rejouer.setBounds(300,300,75,15);

		s = new Sound("mario.wav");
		InputStream stream = new ByteArrayInputStream(s.getSamples());
		s.setSource(stream);
		s.start();

		pause=false;

		this.addKeyListener(this);

		//Méthode run
		t=new Thread(this);
	}	

	public void actionPerformed (ActionEvent ae) //
	{
		if(ae.getSource() == jouer)
		{
			pan.add(scor);
			pan.add(vie);
			pan.setFenetr(2);
			t.start();
			pan.remove(jouer);
			pan.remove(son);
		}

		if(ae.getSource() == rejouer)
		{
			pan.remove(rejouer);
			pan.setFenetr(2);
		}

		if(ae.getSource()==son)
		{
			if((pause==false)&&(s.getOnOff()==true))
			{
				son.setText("Son on");
				pause=true;
				s.setOnOff(false);
			}
			else
			{
				son.setText("Son off");
				pause=false;
				s.setOnOff(true);
			}
		}
		this.requestFocus();
	}



	public void keyPressed(KeyEvent ke)
	{
		if ((ke.getKeyCode()==KeyEvent.VK_SPACE))
		{
			lance= true;
		}
		if (ke.getKeyCode()==KeyEvent.VK_RIGHT)
		{
			droite = true;
		}
		if (ke.getKeyCode()==KeyEvent.VK_LEFT)
		{
			gauche = true;
		}
		if ((ke.getKeyCode()==KeyEvent.VK_UP))         
		{
			if (pan.getSaut() == 0)
			{
				saut = true;
			}
			else
			{
				saut = false;
			}
		}
	}
	public void keyReleased(KeyEvent ke)
	{
		if (ke.getKeyCode()==KeyEvent.VK_RIGHT)
		{
			droite = false;
		}
		if (ke.getKeyCode()==KeyEvent.VK_LEFT)
		{
			gauche = false;
		}
		if (ke.getKeyCode()==KeyEvent.VK_UP)
		{	
			saut = false;                
		}

		if ((ke.getKeyCode()==KeyEvent.VK_SPACE))
		{
			lance= false;
		}
	}

	public void keyTyped(KeyEvent ke)
	{

	}

	public void run()
	{
		int x,y,temps=0;
		while(true)
		{

			try
			{
				
				if (droite)
				{
					pan.deplacementDroite();
				}
				if (gauche)
				{
					pan.deplacementGauche();
				}
				if(saut)
				{
					pan.deplacementSaut();
				}
				if (pan.getSaut() == 100)
				{
					saut=false;
				}
				if(!saut)
				{
					pan.deplacementBas();
				}			
				if(pan.getScorediamant()==true)
				{
					scor.setText(" Score : "+ pan.getScore() );
				}

				vie.setText("Vies : "+ pan.getPersonnage().getNbvp());

				if(pan.getMortPersonnage()==true)
				{
					pan.add(rejouer);
					pan.setFenetr(3);
					pan.remove(scor);
					pan.remove(vie);
				}

				pan.diminueInvincible();

				temps++;
				if(temps%2==0)
				{
					pan.deplacementMonstre();
				}
				pan.repaint();
				t.sleep(6);
			}catch (Exception e) {}
		}
	}




}


Merci d'avance !

1 réponse

  1. Modérateur
    bonjour

    je crois que "rejouer" doit avoir plus ou moins les mêmes actions que jouer..
    Je vois déjà qu'il manque t.start()...
    Peut être une piste
    0