Fondamentalement, ce que je veux faire est d'obtenir un bouton de démarrage pour lancer une méthode s'exécutant dans une autre classe et agissant sur un autre objet.Java: Utiliser un actionlistener pour appeler une fonction dans une autre classe sur un objet de cette classe
Mon code pour l'auditeur:
button1a.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent event) {
// Figure out how to make this work
//sim.runCastleCrash();
}
});
Mon code pour l'autre classe:
public static void main(String[] args) {
CastleCrash sim;
sim = new CastleCrash();
}
et
public void runCastleCrash() {
System.out.println("Castle Crash is beginning...");
//Other method parts here to be added
}
Je sens cela ne peut pas être trop dur , mais il me manque un morceau.
Quelles sont les erreurs? La variable 'sim' est-elle dans la portée même lorsque vous essayez d'ajouter l'actionListener au bouton? Un écueil typique est que les variables doivent être finales pour être accessibles à partir d'une classe interne anonyme telle que votre ActionListener. –
Je reçois l'erreur: Exception dans le thread « principal » java.lang.Error: problème de compilation non résolues: \t sim ne peut pas être résolu Je pense que vous avez raison en ce que son problème avec sim de ne pas être dans le champ d'application, mais je ne peux pas comprendre comment le rendre final .... – Myles
Voir la réponse par McDowell, c'est ce que je répondrais. –