Crear cuadro de mensaje JavaFX

Mehvish Ashiq 15 febrero 2024
Crear cuadro de mensaje JavaFX

El tutorial de hoy demuestra cómo crear un cuadro de mensaje JavaFX en nuestra aplicación Java. El cuadro de mensaje puede ser una alerta de confirmación, advertencia, información o error.

Crear cuadro de mensaje JavaFX

Para lograr el siguiente código de ejemplo, usamos Java versión 18, JavaFX versión 13 y Netbeans IDE versión 13.

Código de ejemplo:

// 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

Salida (ventana principal):

crear cuadro de mensaje javafx - ventana principal

Salida (cuadro de mensaje de confirmación, que se muestra cuando hacemos clic en el botón Cuadro de mensaje de confirmación):

crear cuadro de mensaje javafx - ventana principal

Salida (cuadro de mensaje de error, que se muestra cuando hacemos clic en el botón Error MessageBox):

crear cuadro de mensaje javafx - ventana principal

Salida (cuadro de mensaje de información, que se muestra cuando hacemos clic en el botón Cuadro de mensaje de información):

crear cuadro de mensaje javafx - ventana principal

SALIDA (cuadro de mensaje de advertencia, que se muestra cuando hacemos clic en el botón Warning MessageBox):

crear cuadro de mensaje javafx - ventana principal

Para este tutorial, no necesitamos hacer ningún cambio en los archivos module-info.java y pom.xml. Cree un proyecto JavaFX y practique el código anterior.

Tenemos una clase principal llamada App que amplía la clase Application (que es estándar en Java). Podemos nombrar la clase principal de lanzamiento (App).

A continuación, anulamos el método start() porque la App es la clase hija de la clase Application. Recuerda que la clase hija necesita implementar todas las funciones/métodos abstractos de la clase padre.

Después de eso, tenemos un método start() que toma un parámetro del tipo Stage. Estamos utilizando el parámetro de tipo Stage porque aquí es donde se mostrarán todos los componentes visuales de la aplicación JavaFX.

No necesitamos crear el objeto de tipo Stage porque el tiempo de ejecución de JavaFX lo crea. La siguiente es la explicación paso a paso de lo que hay dentro del método start().

  • Cree un objeto de JavaFX TilePane, que es un componente de diseño y presenta todos sus componentes secundarios en la cuadrícula de celdas del mismo tamaño.
  • Agregue márgenes alrededor de toda la cuadrícula (arriba/derecha/abajo/izquierda).
  • Cree una matriz con los nombres de todos los botones que necesitamos para esta aplicación.
  • Cree un cuadro de mensaje de alerta del tipo NONE porque no queremos mostrar ningún cuadro de mensaje al inicio del programa.
  • A continuación, tenemos un bucle for, que itera sobre todos los nombres de los botones.
    • Dentro del bucle, creamos un botón con el nombre actual.
    • Establecer una acción para ese botón específico en función de la condición. Obtenemos el texto del botón y mostramos un cuadro de mensaje basado en el nombre del botón usando la instrucción switch.
  • Agregue el botón al TilePane.
  • Crea una escena usando la clase Scene.
  • Establece la escena.
  • Finalmente, muestra el escenario.

Ahora es el turno del método main. Podemos lanzar la aplicación JavaFX sin tener el método main, pero es útil cuando necesitamos usar parámetros que se pasan a la aplicación usando la línea de comando.

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

Artículo relacionado - Java JavaFX