[JAVA] Variables qui ne changent pas

Résolu/Fermé
stombaker Messages postés 4 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 29 novembre 2010 - 13 juin 2010 à 19:31
stombaker Messages postés 4 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 29 novembre 2010 - 13 juin 2010 à 20:59
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.

A voir également:

1 réponse

stombaker Messages postés 4 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 29 novembre 2010
13 juin 2010 à 20:59
Réponse trouvée : je ne travaillais pas avec le bon panneau :
this.SetContentPane(new Panneau()) => this.SetContentPane(pan).
0