Passer au contenu principal

Events

Ouvrir dans ChatGPT
Java API

Les composants, qu'ils soient personnalisés ou faisant partie du framework, prennent en charge la gestion des événements. Vous pouvez ajouter des écouteurs d'événements pour capturer divers types d'événements, tels que les interactions des utilisateurs, les changements d'état ou d'autres événements personnalisés. Ces écouteurs d'événements peuvent être utilisés pour déclencher des actions ou des comportements spécifiques en réponse aux événements.

Dans l'exemple ci-dessous, un événement est ajouté en utilisant chacune des trois méthodes prises en charge : expressions lambda, classes anonymes et références de méthode.

Ajout d'événements

L'ajout d'un écouteur d'événements est possible en utilisant l'un des modèles suivants où :

  • myComponent est le composant auquel vous souhaitez attacher l'écouteur d'événements.

  • addEventListener est remplacé par la méthode spécifique à l'événement.

  • EventListener est remplacé par le type d'événement pour lequel vous écoutez.

myComponent.addEventListener(e -> {
//Exécuté lorsque l'événement se déclenche
});

//OU

myComponent.addEventListener(new ComponentEventListener<EventListener>() {
@Override
public void onComponentEvent(ComponentEvent e){
//Exécuté lorsque l'événement se déclenche
}
});

//OU

myComponent.addEventListener(this::eventMethod);

Des méthodes de sucre syntaxique supplémentaires, ou alias, ont été ajoutées pour permettre l'ajout alternatif des événements en utilisant le préfixe on suivi de l'événement, tel que :

myComponent.onEvent(e -> {
//Exécuté lorsque l'événement se déclenche
});

Suppression d'un événement

Lorsque vous ajoutez un écouteur d'événements, un objet ListenerRegistration sera renvoyé. Cela peut être utilisé, entre autres, pour supprimer l'événement plus tard.

//Ajout de l'événement
ListenerRegistration listenerRegistration = myComponent.addEventListener(e -> {
//Exécuté lorsque l'événement se déclenche
});

//Suppression de l'événement
listenerRegistration.remove();

Utilisation de la charge utile de l'événement

Il est important de noter que les événements sont souvent accompagnés d'une charge utile, qui contient des informations supplémentaires liées à l'événement. Vous pouvez utiliser efficacement cette charge utile dans le gestionnaire d'événements pour accéder aux données pertinentes sans faire de déplacements inutiles entre le client et le serveur. Ce faisant, vous pouvez améliorer les performances de votre application.

Le code suivant interroge le composant pour obtenir des informations qui, dans le cadre de notre démonstration, sont déjà incluses dans la charge utile de l'événement, représentant un code inefficace :

myComponent.addEventListener(e -> {
// Accéder aux données du composant
String componentText = e.getComponent().getText();

//OU si le composant est accessible dans le champ de la fonction
String componentText = myComponent.getText();

// Utiliser le componentText pour effectuer d'autres actions.
});

Au lieu de cela, en utilisant la charge utile de la méthode, qui pour l'exemple inclut le texte du composant, un aller-retour est évité :

myComponent.addEventListener(e -> {
// Accéder aux données de la charge utile de l'événement
String componentText = e.getText();

// Utiliser le componentText pour effectuer d'autres actions.
});

Cette approche minimise le besoin d'interroger le composant pour des informations, car les données sont facilement disponibles dans la charge utile de l'événement. En suivant cette pratique de gestion des événements efficace, vous pouvez améliorer les performances et la réactivité de vos composants. Pour plus d'informations, vous pouvez consulter Interaction Client/Serveur.

Exemple

Ci-dessous se trouve une démonstration montrant l'ajout d'un ButtonClickEvent à un Button. Ce Button utilise également des informations provenant de la charge utile de l'événement pour afficher des informations à l'écran.

Afficher le code