Générer des evenements

cs_carlosml Messages postés 5 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 14 août 2006 - 17 juil. 2006 à 14:33
cs_carlosml Messages postés 5 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 14 août 2006 - 19 juil. 2006 à 11:21
    Bonjour,

Je souhaite afficher en continue un attribut d'un objet. Pour cela, la méthode la plus propre me semble etre que mon objet génére un evenement à chaque modification puis que mon interface graphique le receptionne afin de rafraichir l'affichage.

Actuelement un bouton "actualiser" génére un evenement qui est une fois receptionné actualise mon affichage.

Savez-vous comment peut on générer des évenements car je souhaiterais eviter de lire en continue ou periodiquement ma variable.

Merci à vous

Charles

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 juil. 2006 à 15:10
Implémente une interface tout simplement :

Public Interface IMonEvent {
public void monEventSeDeclenche();
}

Puis dans la classe qui doit générer ton événement, ajoute une fonction qui te permet de récupèrer un objet implément l'interface MonEvent :

private IMonEvent m_iEvent;

public void addMonEvent(IMonEvent oEvent) {
m_iEvent = oEvent;
}

Et dans ta classe, pour déclencher ton événement, il suffit de faire :
m_iEvent.monEventSeDeclenche();
0
cs_carlosml Messages postés 5 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 14 août 2006
18 juil. 2006 à 11:02
Merci pour la réponse mais je ne comprend toujours pas...

Comment est-ce que ma classe qui gere l'affichage recevra l'évenement?
En fait c'est ce qu'il y a dans monEventSeDeclenche() qui m'interresse.

Ce que je voudrais c'est que monEventSeDeclenche() génére un Event qui sera récupéré par une classe type :

public class affichage implements ActionListener
{
     public void actionPerformed(ActionEvent evt)  
    {
         // Je gererais ici mon affichage en fonction de l'evenement reçu
    }
}
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 juil. 2006 à 12:55
Bah justement, tu y est presque :
public class affichage implements IMonEvent
{
     public void monEventSeDeclenche()  
    {
         // Je gererais ici mon affichage en fonction de l'evenement reçu
    }
}
0
cs_carlosml Messages postés 5 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 14 août 2006
19 juil. 2006 à 11:21
Ok j'ai l'impression qu'on se rapproche mais je trouve toujours pas...

J'ai compris que je crée mon interface :
Public Interface IMonEvent {
   public void monEventSeDeclenche();
}

Puis dans ma classe qui receptionnera l'evenement :
public class affichage implements IMonEvent
{
     public void monEventSeDeclenche()  
    {
         // Je gererais ici mon affichage 
    }
}

Mais par contre je saisie pas la différence entre celle qui génere et qui déclenche l'evenement.

Mes deux classes (qui declenche et qui receptionne ) ne se connaissent pas (différents threads). Par conséquent je comprend pas quand et qui doit faire un new pour mon IMonEvent... car on ne peut pas faire de "new IMonEvent()"  puisque c'est une interface et si je fais "IMonEvent evt.monEventSeDeclenche()", j'ai un pointeur null...

J'ai pas bien saisi l'interet dans ta premiere reponse de "public void addMonEvent(IMonEvent oEvent) { m_iEvent = oEvent; }"

En tout cas merci pour tes réponses j'ai l'impression de plus en etre trop loin ...
0
Rejoignez-nous