Activation Des Composants D'une Interface - Partie 1
Activation Des Composants D'une Interface - Partie 1
Activation Des Composants D'une Interface - Partie 1
En général, la construction d’une interface graphique (ou GUI) passe par 2 étapes :
1
Pour capturer et traiter les évènements, les objets graphiques sont ˝écoutés˝ par des
˝écouteurs d’évènements˝ (Event Listeners) qui ont pour rôle de renvoyer l’évènement
généré à l’objet qui va le traiter (Event handler).
La programmation des évènements d’une interface doit passer par les étapes suivantes :
2
Tableau 1 : Actions utilisateur, Objets Sources, évènements générés et types de traitements
(Handler) correspondants
A chaque catégorie d’évènements correspond le nom d’une méthode qui permet de lui
associer un écouteur, formée par : setOn + nom de l’évènement (voir tableau1)
NomComposant.setOnxxxxx(EventHandler<yyyyyy>)
Où :
3) Ecrire les gestionnaires des évènements dans les classes des écouteurs
- Chaque type d’évènement correspond généralement à un type d’interface que
l’écouteur doit implémenter
- Chaque interface contient des signatures de méthodes, que l’écouteur va
implémenter (remplir par son propre code). Toutes les méthodes de l’interface
doivent être implémentées.
Pour implémenter les méthodes de l’interface, la classe de l’écouteur doit déclarer dans
son en-tête : implements nom_interface
3
- Par une classe interne à la classe dessinant l’interface (cas utilisé dans ce TP)
- Par une classe externe (voir TP3)
- Par une classe anonyme (voir TP3)
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
4
Exercice 2: de la même manière, nous utilisons ici 2 boutons pour afficher une fenêtre
contenant un cercle qui peut être agrandi en appuyant sur le bouton Enlarge ou rétréci en
appuyant sur le bouton Shrink.
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
5
public static void main(String[] args) {
launch(args);
}
}
public CirclePane() {
getChildren().add(circle);
circle.setStroke(Color.BLACK);
circle.setFill(Color.WHITE);
}
Exercices d’application :
6
2) La balle mobile : Ecrire un programme JavaFX permettant d’obtenir l’interface
suivante :
En cliquant sur les boutons, la balle est déplacée de 2 pixels (en haut, en bas, à gauche ou
à droite) de sa position actuelle.