Signaler

[JAVA] Variables qui ne changent pas [Résolu/Fermé]

Posez votre question stombaker 4Messages postés dimanche 13 juin 2010Date d'inscription 29 novembre 2010 Dernière intervention - Dernière réponse le 13 juin 2010 à 20:59 par stombaker
Bonjour à tous.

Je suis actuellement en train de créer un mini-jeu afin de m'habituer à coder en java, mais j'ai un problème dès le départ.

Je n'arrive pas à changer la valeur d'une variable, pourtant, je ne comprends pas pourquoi.

Voici mes deux pages de codes :

Apple.java :
// imports.

public class Applet extends JApplet
{
	private Panneau pan = new Panneau();
	private int tabGrille[][] = new int[50][50];
	private String direction = "";
	private int codeTouche = 0;
	
	public void init()
	{
		this.setSize(500, 500);
		this.setContentPane(new Panneau());
		this.addKeyListener(new ClavierListener());
		
		Thread g = new Thread(new Gestionnaire());
		g.start();
	}
	
	public void pause(int tps){/*Permet de faire une pause*/}
	
	class Gestionnaire implements Runnable
	{
		public void run()
		{
			codeTouche = 0;
			pan.setEtat("début");
			while (codeTouche != 32)
			{
				pan.repaint();
				pause(500);
			}
			
			System.out.println("Fin boucle 1");
			pan.setEtat("jeu");
			while(true)
			{
				System.out.println("Boucle");
				pause(1000);
			}
		}
	}
	
	class ClavierListener implements KeyListener
	{
		public void keyPressed(KeyEvent event)
		{
			switch (event.getKeyCode())
			{
				case 37 :
					direction = "gauche";
				break;
				case 38 :
					direction = "haut";
				break;
				case 39 :
					direction = "droite";
				break;
				case 40 :
					direction = "bas";
				break;
				default :
					codeTouche = event.getKeyCode();
			}
		}

		public void keyReleased(KeyEvent event){}
		public void keyTyped(KeyEvent event){}    	
    }
}


Panneau.java :
// imports

public class Panneau extends JPanel
{
	private int tabBlocs[][] = new int[50][50];
	private int posX = 0, posY = 0;
	private String etat = "";
	
	public void paintComponent(Graphics g)
	{
		g.setColor(Color.white);
		g.fillRect(0, 0, this.getWidth(), this.getHeight());
		
		if (etat == "début")
		{
			g.setColor(Color.black);
			g.drawString("Veuillez \n appuyer sur la barre d'espace.", 10, 10);
		}
		else if (etat == "jeu")
		{
			System.out.println("Etat : "+etat);
			g.setColor(Color.blue);
			g.drawString("Jeu", 10, 10);
		}
		else
		{
			g.setColor(Color.red);
			g.drawString("Problème", 10, 10);
		}
	}
	
	public int[][] getTabBlocs()
	public int getPosX()
	public int getPosY()
	public String getEtat()
	{
		return etat;
	}
	
	public void setTabBlocs(int tabBlocs[][])
	public void setX(int x)
	public void setY(int y)
	public void setEtat(String etat)
	{
		this.etat = etat;
		System.out.println("Nouvel état : "+this.etat);
	}
}


Et quand je lance le programme, dans la console, j'ai :
Nouvel état : début

Et dans la fenêtre, j'ai :
Problème

Merci de votre aide.
Au revoir.

Utile
+0
plus moins
Réponse trouvée : je ne travaillais pas avec le bon panneau :
this.SetContentPane(new Panneau()) => this.SetContentPane(pan).

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !