In diesem Java-Tutorial programmierst du Schritt-für-Schritt eine einfache "Lotto-App".
Wie soll unser Programm funktionieren?
Stell dir vor, du möchtest eine Lotterie eröffnen. Um dich von der Konkurrenz abzuheben, benötigst du eine herausragende Spielidee.
Eine kurze Spielbeschreibung könnte folgendermaßen aussehen:
- Zuerst müssen deine Kunden die Möglichkeit haben, eine Lotto-Zahl tippen zu können. Das können wir zum Beispiel mit einem einfachen Formular machen.
- Nun muss eine Zufallszahl, also unsere Lottozahl generiert werden.
- Als letztes sollen deine Kunden benachrichtigt werden, wenn sie gewonnen haben. Das können wir mit einer einfachen Nachrichtenbox implementieren.
Wenn dir nach diesem Tutorial weitere Zusatzfunktionen einfallen, zum Beispiel, dass eine Gewinner-Musik abgespielt werden soll, dann kannst du diese nachträglich einbauen.
Starten wir zunächst mit Schritt 1, der Eingabe der Lottozahl.
1. Eingabe einer Lottozahl
Bevor du deine Lotterie eröffnen kannst, müssen wir zuerst den Code schreiben.
Der Kunde soll in ein Formular eine Zahl eingeben können.
In Java gibt es viele Wege, wie wir Daten eingeben können. Das Programm könnte auf eine Konsoleneingabe warten, aus einer Textdatei lesen oder Daten aus dem Internet empfangen. In unserem Fall lösen wir diesen ersten Schritt über ein einfaches Eingabefeld.
Java liefert dafür zum Glück eine Bibliothek namens "Java Swing" mit.
Hinweis "Bibliothek": Eine Bibliothek ist im Fachjargon eine Sammlung von vorgefertigtem Code. Das bedeutet der Code liegt bereits irgendwo in einer Datei und wir können einfach darauf zugreifen.
Starten wir zunächst mit einer Klasse namens "Lotto" und einer main-Methode. Letztere wird in jedem Java-Programm benötigt.
Das Grundgerüst eines Java-Programms:
public class Lotto {
public static void main (String [] args){
}
}
Damit wir unsere Lottozahl-Eingabe speichern können, erstellen wir zuerst eine Variable vom Typ int.
Hinweis: "int" steht für "integer" und definiert, dass wir eine Zahl, nämlich die Lottozahl, speichern wollen.
public class Lotto {
public static void main (String [] args){
int lottoEingabe;
}
}
Jetzt wollen wir dieser Variable einen Wert zuweisen. Dafür wollen wir ein Formular erscheinen lassen.
In dem Formular kann der User dann seine Lottozahl eingeben. Die zuvor angesprochene Bibliothek Java Swing bietet dafür die Klasse "JOptionPane" an. Dieser Klasse teilen wir über die Methode "showInputDialog" mit, dass ein neues JOptionPane angezeigt werden soll.
Damit wir JOptionPane verwenden können, müssen wir die Bibliothek in der ersten Code-Zeile mit dem "import" Befehl importieren:
import javax.swing.JOptionPane;
class Lotto {
public static void main (String [] args){
int lottoEingabe;
lottoEingabe = JOptionPane.showInputDialog("Bitte Lottozahl eingeben:");
}
}
Erklärung: Der obige Code wird noch nicht funktionieren.
- Die Variable lottoEingabe kann nur Zahlen speichern (int).
- JOptionPane hingegen kann nur "Strings" (also Text) entgegennehmen.
Selbst wenn der Benutzer eine Zahl eingibt, wird diese Zahl nicht als Zahl, sondern als Text zurückgegeben. Um dieses Problem zu lösen, gibt es die Methode Integer.parseInt(). Dieser können wir Text übergeben, welcher im Anschluss in eine Zahl umgewandelt wird.
Diese sogenannte Datentyp-Umwandlung sieht wie folgt aus:
import javax.swing.JOptionPane;
public class Lotto {
public static void main (String [] args)
{
String eingabeText = JOptionPane.showInputDialog("Bitte Lottozahl eingeben:");
int lottoEingabe = Integer.parseInt(eingabeText);
}
}
Lottozahl generieren
Nun müssen wir für deine Lotterie noch irgendwie eine Zufallszahl generieren - am besten von fester Größe. Auch dafür hat Java etwas Passendes, nämlich "Random" aus der Bibliothek "util".
Diesmal erstellen wir ein Random-Objekt. Dafür benötigen wir das Schlüsselwort "new". Jetzt können wir die Methode nextInt() verwenden und ein Limit (z.B. 100 Zeichen) definieren.
import javax.swing.JOptionPane;
import java.util.Random;
public class Lotto {
public static void main (String [] args) {
String eingabeText = JOptionPane.showInputDialog("Bitte Lottozahl eingeben:");
int lottoEingabe = Integer.parseInt(eingabeText);
Random zufallsGenerator = new Random();
int zufallszahl = zufallsGenerator.nextInt(100);
}
}
Erklärung: Im obigen Code generieren wir eine neue Zufallszahl bis (ausschließlich) 100 und speichern diese in der Variable zufallszahl.
Benutzer benachrichtigen
Nachdem der Nutzer eine Lottozahl getippt hat und wir eine Lottozahl generieren, müssen wir den Benutzer benachrichtigen, ob er gewonnen hat.
- Hat der Benutzer verloren, dann bekommt er Nachricht "Du hast verloren.".
- Hat er gewonnen, soll die Nachricht "Du hast gewonnen!" angezeigt werden.
Dafür brauchen wir eine Fallunterscheidung.
- Wir prüfen, ob die Lotto-Eingabe gleich der Zufallszahl ist, wenn ja geben wir "Du hast gewonnen!" aus.
- Wenn nein, dann "Du hast verloren. ".
Eine Fallunterscheidung können wir mit if und else durchführen. Zwei Werte auf Gleichheit überprüfen wir mit dem Vergleichsoperator (==).
Siehe folgendes Code-Beispiel:
import javax.swing.JOptionPane;
import java.util.Random;
public class Lotto
{
public static void main (String [] args) {
String eingabeText = JOptionPane.showInputDialog("Bitte Lottozahl eingeben:");
int lottoEingabe = Integer.parseInt(eingabeText);
Random zufallsGenerator = new Random();
int zufallszahl = zufallsGenerator.nextInt(100);
if(zufallszahl == lottoEingabe) {
// Ausgabe "Du hast gewonnen!"
}
else {
// Ausgabe "Du hast verloren!"
}
}
}
Jetzt fehlt nur noch die Ausgabe des Textes "Du hast gewonnen!" und "Du hast verloren!". Danach kann unser Lottobetrieb an den Start gehen.
Zur Lösung dieser Ausgabe benutzen wir erneut JOptionPane. Diesmal jedoch nicht die Methode showInputDialog(), sondern showMessageDialog()
import javax.swing.JOptionPane;
import java.util.Random;
public class Lotto
{
public static void main (String [] args) {
String eingabeText = JOptionPane.showInputDialog("Bitte Lottozahl eingeben:");
int lottoEingabe = Integer.parseInt(eingabeText);
Random zufallsGenerator = new Random();
int zufallszahl = zufallsGenerator.nextInt(100);
if(zufallszahl == lottoEingabe) {
JOptionPane.showMessageDialog(null, "Du hast gewonnen!");
}
else {
JOptionPane.showMessageDialog(null, "Du hast verloren! Die Zahl war: " + zufallszahl);
}
}
}
Erklärung: Wie du siehst, übergeben wir zweimal null. "Null" steht für nichts.
Technisch gesehen könnten wir hier ein anderes Fenster übergeben, sodass die Nachricht dann zentriert in diesem Fenster erscheinen würde. Da wir aber keinen Wert übergeben (null), erscheint die Nachrichtenbox in der Mitte unseres Bildschirms.
Testen des Lotto-Programms
Als Nächstes testen wir das Projekt.
Schließlich wollen wir wissen, ob unser Programm funktioniert:
Super. Wie du auf den obigen Screenshots siehst, funktioniert das Programm.
Fazit zum Tutorial
Du weißt jetzt, wie du ein einfaches Programm, zum Generieren und Auswerten einer Zufallszahl programmieren kannst. Außerdem kannst du User-Eingaben entgegennehmen, in Zahlen umwandeln und dann mit der Zufallszahl vergleichen. Weiterhin hast du gelernt, wie du, je nach Fallentscheidung, eine Nachricht in einer Nachrichtenbox ausgeben kannst.
Wie du siehst, ist es bereits möglich mit relativ wenig Code kleine Programme schreiben.
- Programmiere echte Apps als Anfänger
- Keine Installation, sofort loslegen
- Komplett praxisbezogen
- Zugriff auf Online-Editor