ULille - IUT de Lille - Département informatique - N2 - R2.02 | ||
2023-2024 |
Vous trouverez une version de ce document au format PDF ici.
Vous allez réaliser un prototype haute fidélité de la version basse fidélité conçue à la séance précédente. Aujourd’hui le but n’est pas de réaliser une interface complètement fonctionnelle mais de rendre interactives certaines parties critiques de l’interface pour lesquelles les retours des utilisateurs sont importants.
![]()
Figure 1: Capture d’écran de JavaFX Scene Builder 2.0
JavaFX Scene Builder 2.0 est déjà installé sur les machines des salles TP (/opt/JavaFXSceneBuilder2.0/). Il peut être facilement installé sur n’importe quelle plateforme en suivant les instructions disponibles ici. C’est un logiciel à part entière qui permet de créer des interfaces pour JavaFX par drag-and-drop de widgets et définition de leurs propriétés. Le logiciel génère un fichier fxml qui contient une représentation au format XML de l’interface. Ce fichier pourra ensuite être chargé par votre programme JavaFX.
Q 1. En utilisant JavaFX Scene Builder 2.0, reproduisez l’interface du compteur présenté dans le TP 3, de manière à obtenir un résultat similaire à la Figure 1.
En supposant que votre interface est enregistrée dans le fichier interface.fxml, le code suivant permet de charger ce fichier et d’afficher l’interface. Le fichier fxml doit ici se trouver dans le même répertoire que les .java
public class FXMLdemo extends Application { public void start(Stage stage) throws IOException { FXMLLoader loader = new FXMLLoader(); URL fxmlFileUrl = getClass().getResource("interface.fxml"); if (fxmlFileUrl == null) { System.out.println("Impossible de charger le fichier fxml"); System.exit(-1); } loader.setLocation(fxmlFileUrl); Parent root = loader.load(); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("FXML demo"); stage.show(); } public static void main(String[] args) { Application.launch(args); } } |
Q 2. Testez.
La gestion des événements pour incrémenter le label quand on clique sur le bouton + nécessite de:
public class MonController { @FXML Label monLabel; public void initialize() { System.out.println("Initialisation..."); } public void pressedButtonPlus(ActionEvent event) { int newValue = Integer.parseInt(monLabel.getText()) + 1; monLabel.setText("" + newValue); } } |
Q 3.
Testez le code ci-dessus.
Q 4. Faites le nécessaire pour faire fonctionner le bouton -
Q 5. Réalisez une version haute fidélité de votre prototype de projet et gérez les événements pour une partie de l’interface qui paraît essentielle.
La création du jar exécutable se fait avec la commande jar
, de la façon suivante pour le TP2 :
jar -cvfm carres.jar manifest.MF tp2/Carres.class tp2/Rectangle.class
Le fichier manifest.MF précise la classe principale. Il est nécessaire d’ajouter une ligne vide en fin du fichier.
Manifest-Version: 1.0 Main-Class: tp2.Carres Class-Path: . |
L’exécution se fait avec la ligne suivante :
java --module-path /home/public/javafx-sdk-17.0.2/lib
--add-modules javafx.controls,javafx.fxml -jar carres.jar
La commande suivante permet de vérifier le contenu du jar : jar tf carres.jar
Manifest-Version: 1.0 Main-Class: tp6.FXMLdemo Class-Path: . |
jar -cvfm tp6.jar manifest.MF tp6/FXMLdemo.class tp6/MonController.class tp6/interface.fxml
Ce document a été traduit de LATEX par HEVEA