action listener d'un bouton utilisé dans une autre classe

action listener d'un bouton utilisé dans une autre classe - Java - Programmation

Marsh Posté le 17-02-2005 à 23:29:03    

voilà mon petit problème
 
j'ai une classe qui crée une fenetre avec des bouttons et je voudrais que le traitement de ces boutons (le action performe si je me rappelle bien) s'effectue dans une autre classe.
pour l'instant la doc que j'ai trouvé prend toujours en argument this ce qui pêrmet de le traiter à l'intérieur de la classe ou le boutton a été créé. ors je voudrais que ce traitement soit effectué à l'extérieur.
Quelqu'un pour m'orienter un peu ?
Merci d'avance

Reply

Marsh Posté le 17-02-2005 à 23:29:03   

Reply

Marsh Posté le 17-02-2005 à 23:49:45    

la ou tu passes "this", c'est parce "this" (l'objet dans lequel ce code se trouve) implements MachinListener.
Il tu suffit d'implementer cette interface dans la classe de ton choix, de l'instancier, et de la passer à ta methode set/addMachinListener. (celle qui prend "this" dans ton example)

Reply

Marsh Posté le 18-02-2005 à 08:52:32    

Le plus simple avec les boutons est d'utiliser les actions. Tu peux définir simplement une action en héritant AbstractAction et implémentant la méthode actionPerformed. Il ne te reste qu'à positionner l'action sur le bouton en appelant  
 

Code :
  1. monBouton.setAction(new MonAction())


---------------
Gestion de bug en mode ASP/java : http://eap.bug-sweeper.fr
Reply

Marsh Posté le 18-02-2005 à 11:44:06    

euh ouais, ché pas pourquoi j'ai parlé de listeners moi :ange:
le principe est le meme :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-02-2005 à 10:23:49    

Citation :


Le plus simple avec les boutons est d'utiliser les actions. Tu peux définir simplement une action en héritant AbstractAction et implémentant la méthode actionPerformed. Il ne te reste qu'à positionner l'action sur le bouton en appelant  
 
    * monBouton.setAction(new MonAction())
 


 
merci beaucoup c'est justement ça que je voulais savoir !
mais je voudrais une petite précision.  
est ce que je peux déclarer le corps de la fonction MonAction() dans une autre classe (nommé SIG) tout en gardant :
* monBouton.setAction(new MonAction())
dans ma classe CONSOLE.
et si oui il y a t'il des includes à rajouter ou pas ?
Merci !

Reply

Marsh Posté le 19-02-2005 à 14:05:33    

new MonAction(), ça instancie un objet, c'est pas une méthode.

Reply

Marsh Posté le 19-02-2005 à 14:05:54    

et on n'est pas en php, on ne fait pas d'includes, on ne parle pas de "fonctions".

Reply

Marsh Posté le 19-02-2005 à 19:23:19    

oui je me suis un peu embrouillé. mais euh j'ai toujours un peu de mal à comprendre. le setAction sera "exécuté" quand je cliquerais sur le boutton c'est bien ça ?
mais je voudrais mettre ce qui sera exécuté par MonAction dans une autre classe. c'est possible ?

Reply

Marsh Posté le 21-02-2005 à 09:55:38    

[citation=987206,0,8]... le setAction sera "exécuté" quand je cliquerais sur le boutton c'est bien ça ?
[/citation]
La méthode actionPerformed de l'instance de la classe MonAction sera exécutée.
 
MonAction est une autre classe. Si maintenant si le code à exécuter est dans une autre classe déjà existante il faut que tu l'appelles dans le actionPerformed de MonAction:  
 

Code :
  1. public void actionPerformed(ActionEvent e) {
  2.         SIG.getInstance.methodeDeSIG());
  3.     }


---------------
Gestion de bug en mode ASP/java : http://eap.bug-sweeper.fr
Reply

Marsh Posté le 22-02-2005 à 18:16:16    

merci beaucoup je vais essayé tout ça ! :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed