Comment créer des écouteurs personnalisés en java?


Je veux savoir comment définir nos propres écouteurs en java.Par exemple, j'ai une fonction qui incrémente le nombre de 1 à 100. je veux mettre un écouteur lorsque la valeur atteint 50. Comment puis-je le faire? Pls me suggérer un tutoriel.

Author: Dimitri, 2011-08-04

4 answers

Jetez un oeil à la source de toute classe qui utilise des écouteurs. En fait, c'est assez facile:

  • créez une interface pour votre écouteur, par exemple MyListener
  • maintenir une liste de MyListener
  • à chaque événement que les auditeurs doivent écouter, parcourez la liste et appelez la méthode appropriée avec un ou plusieurs paramètres d'événement

En ce qui concerne le modèle observateur avec du code Java, jetez un œil à wikipedia.

 25
Author: Thomas, 2011-08-04 12:27:23

Https://stackoverflow.com/a/6270150/3675925

Vous voulez probablement regarder dans le modèle d'observateur.

Voici un exemple de code pour vous aider à démarrer:

import java.util.*;

// An interface to be implemented by everyone interested in "Hello" events
interface HelloListener {
    void someoneSaidHello();
}

// Someone who says "Hello"
class Initiater {
    private List<HelloListener> listeners = new ArrayList<HelloListener>();

    public void addListener(HelloListener toAdd) {
        listeners.add(toAdd);
    }

    public void sayHello() {
        System.out.println("Hello!!");

        // Notify everybody that may be interested.
        for (HelloListener hl : listeners)
            hl.someoneSaidHello();
    }
}

// Someone interested in "Hello" events
class Responder implements HelloListener {
    @Override
    public void someoneSaidHello() {
        System.out.println("Hello there...");
    }
}

 

class Test {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();

        initiater.addListener(responder);

        initiater.sayHello();  // Prints "Hello!!!" and "Hello there..."
    }
}
 26
Author: hzandi, 2017-05-23 11:54:25

Il n'y a pas de mécanisme intégré qui vous permettrait d'attacher des écouteurs à toutes les variables. L'objet que vous voulez regarder doit fournir le support pour cela par lui-même. Par exemple, il pourrait devenir observable et déclencher des événements OnChange à ses observateurs (que vous devez également vous assurer que sont suivis).

 0
Author: Thilo, 2011-08-04 12:29:14

Je recommanderais d'utiliser EventBus pour votre cas d'utilisation. Il a une belle conception d'API et est facile à utiliser. Jetez un oeil à leur section Mise en route pour voir comment cela fonctionne.

 0
Author: crusam, 2011-08-04 12:36:43