Bouton ne s'exécute pas

KingNaab Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   -
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

choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
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