Erstellen eine JavaFX-Meldungsbox

Mehvish Ashiq 15 Februar 2024
Erstellen eine JavaFX-Meldungsbox

Das heutige Tutorial demonstriert das Erstellen einer JavaFX-Meldungsbox in unserer Java-Anwendung. Das Meldungsfeld kann eine Bestätigung, Warnung, Information oder Fehlermeldung sein.

Erstellen Sie eine JavaFX-Meldungsbox

Um den folgenden Beispielcode auszuführen, verwenden wir Java Version 18, JavaFX Version 13 und Netbeans IDE Version 13.

Beispielcode:

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

Ausgabe (Hauptfenster):

javafx-Meldungsfeld erstellen - Hauptfenster

Ausgabe (Bestätigungsmeldungsfeld, angezeigt, wenn wir auf die Schaltfläche Confirmation MessageBox klicken):

javafx-Meldungsfeld erstellen - Hauptfenster

Ausgabe (Fehlermeldungsbox, die angezeigt wird, wenn wir auf die Schaltfläche Error MessageBox klicken):

javafx-Meldungsfeld erstellen - Hauptfenster

Ausgabe (Informationsmeldungsfeld, angezeigt, wenn wir auf die Schaltfläche Information MessageBox klicken):

javafx-Meldungsfeld erstellen - Hauptfenster

AUSGABE (Warnmeldungsbox, angezeigt, wenn wir auf die Schaltfläche Warning MessageBox klicken):

javafx-Meldungsfeld erstellen - Hauptfenster

Für dieses Tutorial müssen wir keine Änderungen an den Dateien module-info.java und pom.xml vornehmen. Erstellen Sie ein JavaFX-Projekt und üben Sie den oben angegebenen Code.

Wir haben eine Hauptklasse namens App, die die Klasse Application (die in Java Standard ist) erweitert. Sie können die primäre Startklasse (App) benennen.

Als nächstes überschreiben wir die start()-Methode, weil die App die untergeordnete Klasse der Application-Klasse ist. Denken Sie daran, dass die untergeordnete Klasse alle abstrakten Funktionen/Methoden der übergeordneten Klasse implementieren muss.

Danach haben wir eine start()-Methode, die einen Parameter vom Typ Stage übernimmt. Wir verwenden den Typparameter Stage, da hier alle visuellen Komponenten der JavaFX-Anwendung angezeigt werden.

Wir müssen das Objekt vom Typ Stage nicht erstellen, da es von der JavaFX-Laufzeitumgebung erstellt wird. Im Folgenden wird Schritt für Schritt erklärt, was in der start()-Methode enthalten ist.

  • Erstellen Sie ein JavaFX-Objekt TilePane, das eine Layoutkomponente ist und alle untergeordneten Komponenten im Raster gleichgroßer Zellen anordnet.
  • Erstellen Sie ein Array mit den Namen aller Schaltflächen, die wir für diese Anwendung benötigen.
  • Erstellen Sie ein Warnmeldungsfeld vom Typ NONE, da beim Programmstart kein Meldungsfeld angezeigt werden soll.
  • Als nächstes haben wir eine for-Schleife, die über alle Schaltflächennamen iteriert.
    • Innerhalb der Schleife erstellen wir eine Schaltfläche mit dem aktuellen Namen.
    • Legen Sie basierend auf der Bedingung eine Aktion für diese bestimmte Schaltfläche fest. Wir erhalten den Schaltflächentext und zeigen ein Meldungsfeld basierend auf dem Schaltflächennamen mit der Anweisung switch an.
  • Fügen Sie den Button dem TilePane hinzu.
  • Erstellen Sie eine Szene mit der Klasse Scene.
  • In Szene gesetzt.
  • Zeigen Sie schließlich die Bühne.

Nun ist die Methode main an der Reihe. Wir können die JavaFX-Anwendung starten, ohne die Methode main zu haben, aber es ist nützlich, wenn wir Parameter verwenden müssen, die der Anwendung über die Befehlszeile übergeben werden.

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

Verwandter Artikel - Java JavaFX