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):
Ausgabe (Bestätigungsmeldungsfeld, angezeigt, wenn wir auf die Schaltfläche Confirmation MessageBox
klicken):
Ausgabe (Fehlermeldungsbox, die angezeigt wird, wenn wir auf die Schaltfläche Error MessageBox
klicken):
Ausgabe (Informationsmeldungsfeld, angezeigt, wenn wir auf die Schaltfläche Information MessageBox
klicken):
AUSGABE (Warnmeldungsbox, angezeigt, wenn wir auf die Schaltfläche Warning MessageBox
klicken):
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. -
Fügen Sie Ränder um das gesamte Raster hinzu (
oben/rechts/unten/links
). -
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.