Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

JavaFX-Tutorial: Eine Online-Bestellverwaltung für eine Pizzeria – Schritt für Schritt erklärt

Lerne, wie du mit JavaFX eine interaktive Bestellverwaltung für eine Pizzeria entwickelst – inklusive Pizza-Konfiguration, Warenkorb, Bestellhistorie und Export. Perfekt für dein nächstes Java-Projekt.

JavaFX Tutorial Pizzeria Bestellsoftware Online Pizzabestellung JavaFX JavaFX Projekt Bestellverwaltung Java JavaFX GUI Pizza Konfiguration JavaFX Java Preisberechnung Bestelldaten exportieren Java JavaFX Bestellmanagement Pizzeria Software Entwicklung JavaFX für Anfänger Java Projektideen Bestellsystem JavaFX JavaFX TableView Bestellung Pizzeria Bestellsoftware Tutorial

JavaFX-Tutorial: Eine Online-Bestellverwaltung für eine Pizzeria – Schritt für Schritt erklärt

Stell dir vor, du arbeitest an einem echten Projekt: Eine Pizzeria möchte ihre Bestellungen digital verwalten. Kunden können per Telefon bestellen, und das Personal nimmt die Bestellung in einer JavaFX-Anwendung auf. In diesem Tutorial zeige ich dir, wie du eine solche Online-Pizzabestellung mit JavaFX umsetzt – ohne die komplette Lösung zu verraten, aber mit vielen praktischen Tipps für dein nächstes Java-Projekt.

Warum JavaFX für eine Pizzeria-Bestellsoftware?

JavaFX ist ideal für Desktop-Anwendungen mit grafischen Oberflächen. Anders als Swing bietet es moderne UI-Elemente, CSS-Styling und eine klare Trennung von Logik und Darstellung. Für eine Pizzeria-Software in Java eignet es sich perfekt, weil du schnell mehrere Fenster (GUIs) erstellen kannst – vom Hauptmenü bis zur Bestellübersicht. Aktuell im Mai 2026 setzen viele kleine Unternehmen auf selbst entwickelte Lösungen, um Kosten zu sparen und Prozesse zu optimieren. Mit diesem Tutorial legst du den Grundstein für eine JavaFX-Bestellverwaltung.

Die Anforderungen im Überblick

Bevor du loslegst, solltest du die Anforderungen verstehen. Die Pizzeria bietet drei Pizzasorten: Deluxe (5 Beläge, 12,99 € klein), Hawaiian (2 Beläge, 10,99 € klein) und Pepperoni (1 Belag, 8,99 € klein). Jede Pizza gibt es in klein, mittel und groß – jede Größenänderung kostet 2,00 € extra. Der Kunde kann bis zu 7 zusätzliche Beläge hinzufügen (1,49 € pro Belag). Die Mehrwertsteuer beträgt 6,625 %. Die Software muss vier GUIs bereitstellen: Hauptmenü, Pizza-Konfiguration, aktuelle Bestellung und Bestellverwaltung. Zudem müssen Bestellungen als Textdatei exportiert werden können.

Schritt 1: Projektstruktur und Grundgerüst

Erstelle ein neues JavaFX-Projekt in deiner IDE (z. B. IntelliJ oder Eclipse). Lege für jede GUI eine eigene FXML-Datei und einen Controller an. Verwende ein MVC-Muster: Model-Klassen für Pizza, Belag und Bestellung, View für die FXML-Dateien und Controller für die Logik. Eine gute JavaFX-Projektstruktur erleichtert die Wartung. Beispiel für das Model:

public class Pizza {
    private String name;
    private int standardToppings;
    private double basePrice;
    private String size; // klein, mittel, groß
    private List<String> additionalToppings;
    // Konstruktor, Getter, Setter
}

Schritt 2: Das Hauptmenü (Main Menu)

Das Hauptmenü ist der Einstiegspunkt. Es enthält Buttons für „Pizza bestellen“, „Aktuelle Bestellung anzeigen“ und „Bestellungen verwalten“. In JavaFX erstellst du das Layout mit VBox oder GridPane. Verwende SceneBuilder, um die FXML-Datei visuell zu gestalten. Verknüpfe die Buttons mit Event-Handlern, die zu den anderen GUIs navigieren. Achte darauf, dass die JavaFX-Navigation zwischen Szenen sauber funktioniert – zum Beispiel durch Wechsel der Szene in der Stage.

Schritt 3: Pizza-Konfiguration (Pizza Customization GUI)

Dieses GUI ist das Herzstück. Es zeigt ein Bild der gewählten Pizza, eine Liste der Standardbeläge, eine Auswahl an zusätzlichen Belägen und die Größenauswahl. Der Benutzer kann Beläge hinzufügen oder entfernen, und der Zwischensummenwert wird live aktualisiert. In JavaFX kannst du dafür eine ListView für Beläge und ein Label für den Preis verwenden. Binde die ListView an ein ObservableList-Modell. So wird die dynamische Preisberechnung in Java einfach. Beispiel für die Preisaktualisierung:

@FXML
private void updateSubtotal() {
    double subtotal = selectedPizza.getBasePrice();
    // Größenaufschlag
    switch (sizeChoice.getValue()) {
        case "mittel": subtotal += 2.0; break;
        case "groß": subtotal += 4.0; break;
    }
    // Zusätzliche Beläge
    subtotal + = additionalToppingsList.getSelectionModel().getSelectedItems().size() * 1.49;
    subtotalLabel.setText(String.format("%.2f", subtotal));
}

Ein wichtiger Punkt: Die Anzahl der zusätzlichen Beläge ist auf maximal 7 begrenzt. Prüfe dies im Code, um Fehler zu vermeiden. Denke auch daran, dass die Standardbeläge immer enthalten sind – die Anzahl der Beläge kann nicht unter die Standardanzahl fallen.

Schritt 4: Aktuelle Bestellung (Current Order GUI)

Hier siehst du alle Pizzen der aktuellen Bestellung, jeweils mit ihren Belägen und dem Einzelpreis. Außerdem werden die Zwischensumme, die Steuer (6,625 %) und der Gesamtbetrag angezeigt. Der Benutzer kann eine Pizza aus der Liste entfernen oder die Bestellung aufgeben. Verwende eine TableView, um die Pizzen übersichtlich darzustellen. Die Spalten könnten sein: Pizzaname, Größe, Beläge, Preis. Die Steuerberechnung erfolgt mit total * 0.06625. Runde das Ergebnis auf zwei Dezimalstellen. Für das Bestellmanagement in JavaFX ist es wichtig, dass die Tabelle live aktualisiert wird, wenn Pizzen hinzugefügt oder entfernt werden.

Schritt 5: Bestellverwaltung (Store Orders GUI)

Dieses GUI zeigt alle bereits aufgegebenen Bestellungen an. Jede Bestellung wird durch die Telefonnummer des Kunden (10-stellig) identifiziert. Die Liste enthält die Telefonnummer, den Gesamtbetrag und die Details der Pizzen. Der Benutzer kann eine Bestellung auswählen und stornieren. Nach der Stornierung wird die Liste aktualisiert. Außerdem gibt es einen Button zum Exportieren als Textdatei. In JavaFX verwendest du eine ListView oder TableView für die Bestellungen. Der Export erfolgt mit BufferedWriter und FileChooser. So speicherst du die Bestelldaten als Textdatei in Java:

@FXML
private void exportOrders() {
    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Bestellungen exportieren");
    fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Textdateien", "*.txt"));
    File file = fileChooser.showSaveDialog(stage);
    if (file != null) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
            for (Order order : allOrders) {
                writer.write(order.toString());
                writer.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Schritt 6: Validierung und Fehlerbehandlung

Stelle sicher, dass die Telefonnummer genau 10 Ziffern enthält. Überprüfe, ob eine Bestellung bereits existiert, bevor du eine neue anlegst. Verwende Try-Catch-Blöcke, um Eingabefehler abzufangen. Eine gute Fehlerbehandlung in JavaFX verbessert die Benutzerfreundlichkeit. Zeige Fehlermeldungen in einem Alert-Dialog an.

Schritt 7: Testen und Optimieren

Teste alle Funktionen: Bestellung aufgeben, Pizza konfigurieren, Bestellung stornieren, Export. Achte darauf, dass die Preise korrekt berechnet werden. Nutze JUnit, um die Logik zu testen. Mit JavaFX-Testing-Tools wie TestFX kannst du auch die GUI testen. Optimiere den Code, indem du Methoden kurz hältst (max. 40 Zeilen) und jede Klasse in eine eigene Datei auslagerst.

Fazit

Mit diesem Tutorial hast du einen soliden Einstieg in die Entwicklung einer Pizzeria-Bestellsoftware mit JavaFX. Du kennst die wichtigsten GUI-Komponenten, die Navigation zwischen Szenen und die Datenverwaltung. Jetzt bist du bereit, dein eigenes Projekt umzusetzen – ob für eine Pizzeria oder ein anderes Bestellsystem. Viel Erfolg!