News Ticker

Java 10: Einführung in die Grafische Oberfläche – kleines Kontoprogramm

In diesem Artikel zeige ich euch wie ihr in Java ein Programm mit einer grafischen Oberfläche schreiben könnt. Dazu müssen wir ein paar Dinge anders machen beim erstellen eines neuen Projekts.

Zunächst klickt ihr auf  File –> New Project… –> bei Categories wählt ihr wie ihr es schon kennt Java und bei Projects lasst ihr auch Java Application. Jetzt ist es aber wichtig das ihr bei “Create Main Class” den Haken weg macht, danach klickt ihr auf Finish.

New_JFrame_Form  
Jetzt macht ihr einen Rechtsklick auf “JFrame Form” wie man es in dem Screenshot sehen kann. Dort wählt ihr en Menupunkt New und klickt dort auf Java Class.

JFrame_Form  
Jetzt seht ihr dieses Fenster dort gebt ihr bei Class Name einen Namen ein wie eure Klasse heißen soll. Ich habe sie jetzt StartKonto genannt.

Jetzt seht ihr einen grauen Kasten. Dies ist eure Grafische Oberfläche wo ihr Buttons Textfelder und vieles mehr hinzufügen könnt.

JLabelAuf der Rechten Seite bei der Palette könnt ihr unter dem Menupunkt Swing Controls z.B. Labels oder Textfelder hinzufügen. Dazu zieht ihr die Gewünschte Funktion einfach in euren Design Bereich (die graue Box). Ein Label ist etwas wo ihr einen Text ausgeben könnt. Bei einem Text Field könnt der Benutzter eures Programms selber eine Eingabe machen.
Für den Anfang ist der Button noch eine wichtige Funktion. Diesen könnt ihr z.B. zum Starten eures Programms verwenden.

Wenn ihr jetzt z.B. möchtet das euer Programm startet sobald ihr mit der Maus auf den Button klickt müsst ihr so vorgehen:

GUI_Events  Ihr klickt zunächst auf den Button so das er markiert ist. Danach geht ihr auf der rechten Seite bei den Properties auf “Events”, dort scrollt ihr nach unten bis ihr “mouseClicked” seht. Wenn ihr das gefunden habt klickt ihr auf das … dann öffnet sich das Fenster Handlers for mouseClicked. Hier betätigt ihr den Button Add.. und es geht ein weiteres Fenster auf, hier gebt ihr einen Namen der Funktion an. Ich habe jetzt mouseClicked gewählt. Diese Eingabe bestätigt ihr in beiden Fenstern mit OK. Danach wechselt Netbeans automatisch in den Source Modus und ihr sehr den Code. Euer Courser ist dann auch gleich an der stelle wo die Aktion mit dem Mausklick auf den Button durchgeführt wird. Also alles was ihr dort eingebt wird ausgeführt wenn ihr den Button betätigt.

GUI_Change_Variable
Wenn ihr von einem eurer Labels, Text Feldern etc. den Namen ändern möchtet geht ihr zunächst wieder in den Design Modus. Hier geht in denn in das Inspector Fenster links unten bei Netbeans, dort macht ihr einen rechtsklick auf das jeweilige Text Feld bzw. Label. Hier klickt ihr dann auf Change Variable Name.. in dem fenster was sich anschließend ändert könnt ihr den Namen eurer Variablen anpassen. Mit einem Rechtsklick auf die Variable könnt ihr auch auf Edit Text gehen um den Text welchen ein Label oder eine Textbox anzeigt ändern.

Unterschiede zur Consolen Programmierung:
Hier noch ein paar Hinweise für die Programmierung mit einer Grafischen Oberfläche. Denn hier müssen wir bei ein paar Dingen anders vorgehen als bei der Consolen Programmierung.

Wenn wir Variablen Deklarieren möchten machen wir das nach der Zeile:

public class StartKoto extends javax.swing.JFrame {

Wenn ihr eine Eingabe aus einem Textfeld einlesen möchtet und danach in einer Variablen speichern möchtet macht ihr das so:

Variable = jTextfeld.getText();

Ihr gebt also zuerst die Variable an in welcher der Inhalt gespeichert werden soll. Das jTextfeld ist der Name eures Textfeldes und mit dem getText() lest ihr den Text ein.

Um einen Text auf einem Label aus zu geben geht wie folgendermaßen vor:

jLabel.setText (Variable);

Mit dem jLabel legt ihr fest auf welchem Label euer text ausgegeben werden soll. setText ist wieder dafür da das ihr befehlt das ein Text ausgegeben werden soll. Die Variable welche sich in der () befindet wird dann in dem Label ausgegeben.

Ihr müsst noch beachten das beim einlesen von einem Text aus einem Textfeld der jeweilige Text als String ausgelesen wird. Wenn ihr aber mit Zahlen weiter arbeitet möchtet müsst ihr diese dann erst in ein double oder int umwandeln. Wie das geht habe ich in dem Java Tutorial 5 beschrieben. Wenn ihr diese Zahl dann wieder auf einem Label ausgeben möchtet müsst ihr es zunächst wieder in einen String umwandeln.

Textbox

Damit ihr so eine Textbox wie ihr in dem Screenshot seht ausgeben könnt müsst ihr zunächst dieses Package importieren

import javax.swing.JOptionPane;

Dort wo ihr die Messagebox aufrufen möchtet fügt ihr diesen Code ein.

JOptionPane.showMessageDialog(null, "Test Messagebox", "Test Titel", JOptionPane.OK_CANCEL_OPTION);

Dort wo jetzt Test Messagebox steht könnt ihr das eingeben was in eurer Messagebox angezeigt werden soll. Bei Test Titel könnt ihr den Text einfügen was als Überschrift von eurer Textbox angezeigt werden soll.

Jetzt solltet ihr eigentlich in der Lage sein euer erstes kleines Programm mit einer Grafischen Oberfläche zu schreiben. Das ganze soll ein kleines Konto Programm sein. Hier soll es möglich sein das ihr über ein Textfeld Geld eingeben könnt was über einen Button Buchen auf ein Virtuelles Konto gebucht wird. Mit 2 Labels sollt ihr den Kontostand anzeigen und in einem 2. Label wie hoch die letzte Buchung war. Bei dem Konto soll es nicht möglich sein ins Minus zu gehen. Ihr könnt also maximal so viel Geld abheben bis ihr wieder bei 0 seit. Wenn man bei einer Buchung ins Minus gehen würde soll eine Messagebox mit einer Warnung kommen und die Buchung soll nicht durchgeführt werden.

Euer fertiges Programm sollte ca. so aussehen.

▼ Code anzeigen

  • In den Zeilen 12 bis 14 werden die Packages importiert.
  • In den Zeilen 22 bis 26 werden die Variablen deklariert.
  • In der Zeile 131 wird der Text aus dem Textfeld eingelesen und in der Variablen Eingabe gespeichert.
  • In der Zeile 132 wird der String in ein double umgewandelt und in der Variablen betrag gespeichert.
  • In der Zeile 134 ist eine If Abfrage welche Abfragt ob der Kontostand nach der Buchung kleiner als 0 wäre.
  • In der Zeile 136 wird der aktuelle Buchungsbetrag zu dem Kontostand addiert.
  • In der Zeile 137 wird das double in einen String umgewandelt und in der Variablen Ausgabe gespeichert.
  • In der Zeile 138 wird der Buchungsbetrag auf dem Label jLabEingabe ausgegeben.
  • In der Zeile 139 wird der aktuelle Kontostand auf dem Label jLabAusgabe ausgegeben.
  • In der Zeile 142 beginnt der else Bereich der If Abfrage, dieser Bereich wird ausgelöst wenn der Kontostand ins Minus gehen würde nach der Buchung.
  • In der Zeile 144

Die restlichen Teile des Codes sind erst einmal nicht so wichtig, daher gehe ich darauf nicht genauer ein.

Hier geht es zu den bisherigen Teilen der Artikelserie Java:

Java 1: Netbeans die ersten Schritte und Hello World

Java 2: Rechnen mit Variablen

Java 3: Werte einlesen, zwischenspeichern und wieder ausgeben

Java 4: Kassen Programm mit if Abfrage

Java 5: Kassen Programm while, do-while Schleife

Java 6: Kassen Programm For Schleife

Java 7: Array – Lotto Programm erstellen

Java 8: Inhalt einer Datei auslesen und filtern

Java 9: Inhalt einer Textdatei in eine andere Datei kopieren