Créer une boîte de message JavaFX
Le didacticiel d’aujourd’hui illustre la création d’une boîte de message JavaFX dans notre application Java. La boîte de message peut être une confirmation, un avertissement, une information ou une alerte d’erreur.
Créer une boîte de message JavaFX
Pour accomplir l’exemple de code suivant, nous utilisons Java version 18, JavaFX version 13 et Netbeans IDE version 13.
Exemple de code :
// write your package name
package com.mycompany.javafx_messagebox;
// import required libraries
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
@Override
public void start(Stage stage) {
// create a tile pane
TilePane r = new TilePane();
// add padding
r.setPadding(new Insets(10, 10, 10, 10));
// an array of button names
String[] buttonNames = {"Confirmation MessageBox", "Error MessageBox", "Information MessageBox",
"Warning MessageBox"};
// Show no alert at the startup of the program
Alert alert = new Alert(AlertType.NONE);
/*
a loop to create buttons, define actions when
they are pressed and add them to the tile pane
*/
for (String s : buttonNames) {
Button button = new Button(s);
button.setOnAction((ActionEvent event) -> {
if (null != button.getText()) {
switch (button.getText()) {
case "Confirmation MessageBox":
// set alert type, title, content text and then show it
alert.setAlertType(AlertType.CONFIRMATION);
alert.setTitle("Confirmation MessageBox");
alert.setContentText("This is a CONFIRMATION "
+ "message for you!");
alert.show();
break;
case "Error MessageBox":
// set alert type, title, content text and then show it
alert.setAlertType(AlertType.ERROR);
alert.setTitle("Error MessageBox");
alert.setContentText("This is an ERROR message for you!");
alert.show();
break;
case "Information MessageBox":
// set alert type, title, content text and then show it
alert.setAlertType(AlertType.INFORMATION);
alert.setTitle("Information MessageBox");
alert.setContentText("This is a INFORMATION "
+ "message for you!");
alert.show();
break;
case "Warning MessageBox":
// set alert type, title, content text and then show it
alert.setAlertType(AlertType.WARNING);
alert.setTitle("Warning MessageBox");
alert.setContentText("This is a WARNING message for you!");
alert.show();
break;
default:
break;
}
}
});
// add button
r.getChildren().add(button);
}
// create a scene
Scene sc = new Scene(r, 640, 50);
// set the scene
stage.setScene(sc);
// show the stage
stage.show();
} // end start method
// main method
public static void main(String[] args) {
launch(args);
} // end main
} // end App class
Sortie (fenêtre principale) :
Sortie (boîte de message de confirmation, affichée lorsque nous cliquons sur le bouton Confirmation MessageBox
):
Sortie (boîte de message d’erreur, affichée lorsque nous cliquons sur le bouton Error MessageBox
):
Sortie (boîte de message d’information, affichée lorsque l’on clique sur le bouton Boîte de message d'information
) :
OUTPUT (boîte de message d’avertissement, affichée lorsque nous cliquons sur le bouton Warning MessageBox
):
Pour ce tutoriel, nous n’avons pas besoin de modifier les fichiers module-info.java
et pom.xml
. Créez un projet JavaFX et pratiquez le code ci-dessus.
Nous avons une classe principale nommée App
qui étend la classe Application
(qui est standard en Java). Vous pouvez nommer la classe de lancement principale (App
).
Ensuite, nous redéfinissons la méthode start()
car App
est la classe enfant de la classe Application
. N’oubliez pas que la classe enfant doit implémenter toutes les fonctions/méthodes abstraites de la classe parent.
Ensuite, nous avons une méthode start()
qui prend un paramètre de type Stage
. Nous utilisons le paramètre de type Stage
car c’est là que tous les composants visuels de l’application JavaFX seront affichés.
Nous n’avons pas besoin de créer l’objet de type Stage
car le runtime JavaFX le crée. Ce qui suit est l’explication étape par étape de ce qu’il y a à l’intérieur de la méthode start()
.
-
Créez un objet de JavaFX
TilePane
, qui est un composant de mise en page et dispose tous ses composants enfants dans la grille de cellules de même taille. -
Ajoutez des marges tout autour de la grille entière (
top/right/bottom/left
). -
Créez un tableau avec les noms de tous les boutons dont nous avons besoin pour cette application.
-
Créez une boîte de message d’alerte de type
NONE
car nous ne voulons pas afficher de boîte de message au démarrage du programme. -
Ensuite, nous avons une boucle
for
, qui itère sur tous les noms de boutons.- À l’intérieur de la boucle, nous créons un bouton du nom actuel.
- Définissez une action pour ce bouton spécifique en fonction de la condition. Nous obtenons le texte du bouton et affichons une boîte de message basée sur le nom du bouton en utilisant l’instruction
switch
.
-
Ajoutez le bouton au
TilePane
. -
Créez une scène en utilisant la classe
Scene
. -
Mettre en scène.
-
Enfin, montrez la scène.
Maintenant, c’est au tour de la méthode main
. On peut lancer l’application JavaFX sans avoir la méthode main
, mais c’est utile quand on est obligé d’utiliser des paramètres qui sont passés à l’application en utilisant la ligne de commande.