Petit aperçu de Java Fx

Anselme

Présentation

Au tout départ il y a eu AWT, qui fût la première bibliothèque  java pour concevoir des interfaces graphique. AWT a ensuite évolué en Swing qui est devenu la voie principale.

En digne successeur de Swing, JavaFX a été conçu pour réaliser des interfaces utilisateurs pouvant s’exécuter sur une large variété de support que ce soit ordinateur, appareil mobile, tv voire même console.

Cette librairie initialement créée en 2008 a beaucoup évolué depuis. Il y a peu cette bibliothèque était utilisable uniquement via un langage de script spécifique et il fallait la télécharger à part. Aujourd’hui Java Fx fait partie intégrante de java 8 et est full java.

Concepts de Base

En JavaFX toutes les applications doivent étendre la classe javafx.application.Application. Cette classe fournit le cycle de vie de l’application tel que le lancement (launch), le démarrage (start) ou encore l’arrêt de l’application (stop). Cela fourni un mécanisme pour les applications java de lancer une GUI JavaFX séparément de la méthode main.

Lors du lancement d’une application java faisant appel à du JavaFX, la méthode main doit appeler la méthode launch de la classe Application. Cette dernière appelle la méthode start que nous aurons préalablement redéfinie.

La redéfinition de la méthode start permet de s’assurer que la création des composants graphiques s’effectuera dans un seul thread. En effet, tous comme Swing l’utilisation de JavaFX est monothread et tous les appels de création ou de modification d’objet graphique doit se faire dans un seul thread, ici le JavaFX Application Thread.

Les éléments graphiques d’une gui JavaFX sont ordonnés dans une hiérarchie de conteneurs. Au plus haut niveau, il y a les Stages (javafx.stage.Stage) qui représentent les fenêtres. Dans ces Stages y sont disposés des Scenes (javafx.scene.Scene) qui contiennent des Nodes (javafx.scene.Node). Ces Nodes peuvent représenter des composants graphiques (tels que les labels, les boutons …) ou d’autres conteneurs (tel que des Panel avec leur stratégie de disposition de composants).

Hello World App

Comme dit précédemment, toutes les applications JavaFx doivent étendre la classe Application. La méthode start ainsi redéfinie créé et agence les composants graphiques.

Les lignes suivantes

créent un Node de type Button et y affecte du texte.

A l’aide de cette clouer, on ajoute au bouton un EventHandler qui appellera la méthode cliqueSurBouton() à chaque clique sur le bouton.

On crée un Node de type BorderPane et on lui ajoute dans la partie centrale le bouton précédemment créé.

Nous créons une Scene à laquelle nous passons en paramètre le Pan crée et les dimensions de la fenêtre. Et nous affectons au Stage, la fenêtre que nous venons de créer.

Nous avons créé les composants à afficher, nous pouvons donc affecter un titre et afficher la fenêtre avec les lignes suivantes :

Pour lancer notre application nous avons juste à lancer la méthode main comme pour tout programme en veillant bien appeler la méthode launch comme suit :

facebooktwittergoogle_plusmail

Laisser un commentaire