simo_azzaoui
Messages postés11Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention21 septembre 2006
-
16 sept. 2006 à 19:12
simo_azzaoui
Messages postés11Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention21 septembre 2006
-
17 sept. 2006 à 19:02
Bonjour , j'aimerai savoir si je pouvais ajouter des Listener à ma propre classe .
exemple , j'ai une classe toute simple qui dessine un triangle apres avoir joint 3 points, et j'aimerai qu'un message s'affiche si je click sur ce dessin , est ce possible ? eventuellement en implémentant une interface ou quelque chose de ce genre , merci
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 17 sept. 2006 à 17:58
Dans ta classe Triangle, il faut rajouter :
private IAddEvent event;
public void addRaiseEvent(IAddEvent oEvent) {
event = oEvent;
}
et un appel à la fonction raiseEvent à l'endroit où tu veux déclencher l'événement (dans le MouseListener apparement, bien que je ne vois pas le rapport entre le clic de souris sur ton objet triangle, qui apparament n'est pas un contrôle !!!).
Et ainsi, dans la fonction
public void raiseEvent(MouseEvent e) {
// koi mettre ??
}
De ton objet principal, c'est là que tu dois gérer que faire lorsque l'événement ce déclenche, comme tu le fait dans tes listeners de tes boutons.
simo_azzaoui
Messages postés11Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention21 septembre 2006 16 sept. 2006 à 20:07
j'ai un petit problème , peut etre ai je mal compris le fonctionnement de la chose , j'ai crée une interface comme suit
interface IAddEvent {
public void raiseEvent();
}
ensuite dans ma classe triangle j'ai ajouté ceci
public void addRaiseEvent(IAddEvent oEvent) {
event = oEvent;
et puis dans la classe frame qui contient la methode main , j'ai pas su quoi mettre
comment vais je declencher ceci :
if (event != null) {
event.raiseEvent();
il me manque quelque chose , ou bien , me suis je trompé carrement dans mon interpretation des choses ? merci de m'eclairer le plus simplement possible , je ne suis pas tres familier avec les evenements
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 16 sept. 2006 à 20:41
Tout dépend quand est-ce que tu veux déclencher ton événements (à quel moment la classe qui a ajoutée un listener sur ton événement va l'intercepter).
Par exemple, ca peut-être lorsqu'un objet est complètement chargé, à ce moment là il suffit de mettre l'appel de la fonction raiseEvent à la fin du constructeur de la classe.
Pour utiliser l'événement, c'est comme pour des événements "classiques" tels que ActionListener : il suffit soit de faire :
void addMenuItem(JMenu m, String label, String command, int key) {
//ajout des menus
}
}
dzl c long , alors resumons , mon petit triangle , je veux que lorsque je click dessus il me génére un evenement click où eventuellement je mettrais pas mal de traitement.