|
|
|
|
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;
public void actionPerformed(ActionEvent Ev) {
if(Ev.getSource()==this.activerLaCible) {
activerLaCible.setEnabled(true);
Agent.activeCible = true;
arreter.setEnabled(false);
}
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ésultats pour [Java] Error: non static variable
Résultats pour [Java] Error: non static variable
Résultats pour [Java] Error: non static variable
Résultats pour [Java] Error: non static variable