Codename One Anleitung Notenrechner (Eclipse

Aus Mediawiki der Ludwig-Geißler-Schule
Zur Navigation springen Zur Suche springen

Schritt 1: Wichtige Importe Zuerst werden alle notwendigen Imports gemacht. Diese Imports umfassen UI-Komponenten und Layout-Manager von Codename One, sowie grundlegende Java-Bibliotheken sie sind entscheidend, um die Funktionalität der Anwendung sicherzustellen und die verschiedenen UI-Elemente verwenden zu können.

Schritt 2: Deklaration der Klasse und benötigter Variablen In der Klasse MyApp11 werden verschiedene Variablen deklariert:

Form current: Diese Variable speichert die aktuelle App, die gerade angezeigt wird. Es ermöglicht das Zurückkehren zur letzte angezeigten App, wenn die aktuelle App geschlossen wird. Resources theme: Diese Variable hält das UI-Theme der Anwendung, das für das Styling der Anwendung verwendet wird. ArrayList<Integer> vornoten: Eine Liste, die alle eingegebenen Vornoten speichert. ArrayList<Integer> pruefungsnoten: Eine Liste, die alle eingegebenen Prüfungsnoten speichert. Diese Variablen sind notwendig, um die Benutzereingaben zu speichern.

Schritt 3: Initialisierung Die Methode init(Object) wird beim Start der Anwendung aufgerufen und baut das UI-Theme. Das Theme definiert wie die Anwendungs aussieht und wird einmalig beim Start der App geladen.

Schritt 4: Startmethode Die Methode start() erstellt dieHauptmethode der Anwendung. Diese Methode wird aufgerufen, wenn die Anwendung startet oder wieder in den Vordergrund tritt:

Zunächst wird überprüft, ob ein aktuelles Formular (current) existiert. Wenn ja, wird dieses Formular angezeigt. Ein neues Formular hi wird erstellt, das ein vertikales BoxLayout hat.

Schritt 5: Eingabefelder und Bestätigungsbutton Es werden drei Textfelder und ein Bestätigungsbutton erstellt und zur App hinzugefügt:

TextField fachField: Ein Eingabefeld, in das der Benutzer den Namen des Fachs eingibt. TextField vornoteField: Ein numerisches Eingabefeld, in das der Benutzer die Vornote eingibt. TextField pruefungsnoteField: Ein numerisches Eingabefeld, in das der Benutzer die Prüfungsnote eingibt. Button confirmButton: Ein Button, den der Benutzer anklickt, um die eingegebenen Noten zu bestätigen.

Schritt 6: Bestätigungsbutton-Listener Ein ActionListener wird für den Bestätigungsbutton hinzugefügt. Dieser Listener führt folgende Aufgaben aus:

Liest die eingegebenen Vornoten und Prüfungsnoten. Checkt ob die Noten im Bereich von 0 bis 15 liegen. Falls nicht, wird eine Fehlermeldung angezeigt. Fügt die Noten den entsprechenden ArrayLists (vornoten und pruefungsnoten) hinzu. Zeigt eine Kurzform der eingegebenen Daten (Fachname, Vornote, Prüfungsnote) in der App an. Setzt die Eingabefelder zurück, um Platz für neue Eingaben zu schaffen. Aktualisiert die App, um die neuen Daten anzuzeigen.

Schritt 7: Berechnungsbutton und Ergebnislabel Ein zusätzlicher Button und ein Label zur Anzeige des Ergebnisses werden hinzugefügt:

Button berechnenButton: Ein Button, den der Benutzer anklickt, um den Durchschnitt der eingegebenen Noten zu berechnen. Label ergebnisLabel: Ein Label, das den berechneten Durchschnitt anzeigt. Der ActionListener des Berechnungsbuttons führt die Berechnung des Durchschnitts durch:

Summiert die gewichteten Noten (66,6% Vornote, 33,3% Prüfungsnote). Rundet die gewichteten Noten und berechnet den Durchschnitt. Zeigt den berechneten Durchschnitt an. Zeigt eine Fehlermeldung an, wenn keine Noten zur Berechnung vorliegen.

Schritt 8: Formular anzeigen Nachdem alle Komponenten hinzugefügt und die ActionListener definiert wurden, wird das Hauptformular angezeigt. Dies geschieht durch Aufruf der Methode hi.show(), die die App auf dem Bildschirm darstellt.

Schritt 9: stop- und destroy-Methoden Diese Methoden verwalten den Zustand der Anwendung:

stop(): Diese Methode wird aufgerufen, wenn die Anwendung in den Hintergrund tritt. Sie speichert das aktuelle Formular, damit es später wieder angezeigt werden kann und schließt eventuell geöffnete Dialoge. destroy(): Diese Methode wird aufgerufen, wenn die Anwendung zerstört wird. Sie ist aktuell leer, da keine speziellen Zerstörungsmaßnahmen erforderlich sind.