Créer une boîte de message JavaFX

Mehvish Ashiq 15 février 2024
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) :

créer une boîte de message javafx - fenêtre principale

Sortie (boîte de message de confirmation, affichée lorsque nous cliquons sur le bouton Confirmation MessageBox):

créer une boîte de message javafx - fenêtre principale

Sortie (boîte de message d’erreur, affichée lorsque nous cliquons sur le bouton Error MessageBox):

créer une boîte de message javafx - fenêtre principale

Sortie (boîte de message d’information, affichée lorsque l’on clique sur le bouton Boîte de message d'information) :

créer une boîte de message javafx - fenêtre principale

OUTPUT (boîte de message d’avertissement, affichée lorsque nous cliquons sur le bouton Warning MessageBox):

créer une boîte de message javafx - fenêtre principale

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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Article connexe - Java JavaFX