Rechercher : dans
Par :

[Java] Error: non-static variable

Dernière réponse le 7 jun 2005 à 19:19:07 papillon_bleu, le 26 mai 2005 à 20:12:20 
 Signaler ce message aux modérateurs

Coucou tt le monde!!

Merci déjà de prendre un peu de votre temps pour aider les autres!!

Moi aussi j'ai une petite question à propos d'une erreur dans mon programme.
voilà l'erreur:
C:\Documents and Settings\Administrateur\Bureau\Agent.java:206: non-static variable activeCible cannot be referenced from a static context
Agent.activeCible =true;
^
Donc en fait j'ai déclaré un boolean activeCible danc ma classe agent.

public class Agent{
	
	public Vecteur position;
	public Vecteur vitesse;
	public Vecteur force;
	public Vecteur acceleration;
	public Vecteur orientation;
	public Color myColor;
	public double masse;
	public double maxForce= 1.7;
	public double maxVitesse= 2.5;
	public Monde lemonde;
	public boolean activeCible = false;

avec ttes les méthodes suivent.
Je veux rappeler ma variable dans ma classe interface au niveau de l'action d'un bouton et pour l'appeler je fais Agent.activeCible:

	public void actionPerformed(ActionEvent Ev) {	
  		
  	    if(Ev.getSource()==this.activerLaCible) { 
	 		activerLaCible.setEnabled(true);
  			Agent.activeCible = true;
  			arreter.setEnabled(false);	
  	}

mais ça ne marche pas et je ne vois pas du tout pourquoi c'est surement pas très compliquer... Enfin Merci pour toutes vos réponses d'avance et surtout BONNE SOIREE!!
Laura

Meilleures réponses pour « [Java] Error: non static variable » dans :
Le mot-clé static ou les attributs et méthodes de classe en POO Voir(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore,...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...

1

Rek, le 27 mai 2005 à 05:55:32
  • +2

Bonjours papillon_bleu, je pense avoir trouvé ton erreur.

Si ta classe Agent sert d'objet (pour la création de plusieurs Agents différents avec des attributs différents), tu dois définir quel Agent doit modifier sa variable activeCible. Pour créer un Agent, tu utilises la commande suivante :

Agent monAgent = new Agent(attributs_du_constructeur);
En appellant activeCible de cette manière : (Agent.activeCible), une erreur se produit car ta variable activeCible n'a pas été déclaré en static (public static boolean activeCible = false;). Déclarer une variable en static la fait unique, donc elle portera les memes valeurs peut importe tes objets Agent. J'imagine que tu veux le contraire donc la solution à ton probleme serait de remplacer la ligne erroné par :

monAgent(désignant le nom de ton agent).activeCible = true;

Je te propose aussi de créer une méthode setActiveCible().
Finalement si tu ne connais pas nécéssairement le nom de ton Agent, utilise un tableau d'objets Agent !

J'espere avoir pu t'aider !

Répondre à Rek

2

 papillon_bleu, le 7 jun 2005 à 19:19:07

Parait-il qu'il n'est js trop tard... donc je te dis MERCI ( Avec un énorme retard..dont je m'excuse) car oui tu m'as aidé!!
Bon courage pour la suite!!

++
Laura

Répondre à papillon_bleu