Skip to main content

Ein Java Fenster erzeugen mit dem JFrame

Ein Java Fenster erzeugen mit Swing.

Java Swing – was ist das?
Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an.
Diese Klasse nennt sich Swing.

Aus dieser Swing-Klasse heraus können Objekte erstellt werden.
Diese Objekte lassen sich in vier verschiedene Kategorien einteilen.

  • Fenster und Dialoge bilden das Grundgerüst einer grafischen Oberfläche.
  • Die zweite Kategorie sind die Menüs.
    Diese dienen der Steuerung eines Programmes.
    Mit Hilfe von Menüs kann durch das Programm navigiert und es können weitere Fenster geöffnet werden.
  • Auf den einzelnen Fenster werden Container platziert.
    Und diese wiederum enthalten Bedienelemente wie Buttons, Eingabefelder und Schaltflächen.

Also dann – lass uns beginnen das Grundgerüst einer GUI zu erstellen.

So kannst du ein Java Fenster erzeugen

Und zwar legst du ein Objekt der Klasse JFrame an.

Und so geht’s.

import javax.swing.JFrame;//Importanweisung der Klasse JFrame aus dem package Swing

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame(); //neues Frame bzw. Fenster
	}
}

Um ein Dialogfenster vom Typ JFrame anzulegen, musst du die Klasse importieren.
Diese Klasse befindet sich in einem Package namens Swing.
Im diesem Swing-Package befinden sich weitere Elemente für die grafische Benutzeroberfläche.

Wenn du jetzt auf „Run“ klickst, passiert äußerlich im Programm erst einmal noch gar nichts.
Du solltest für dieses Dialogfenster eine bestimmte Fläche reservieren.

Und eine Fläche besteht immer aus einer Breite und einer Höhe.
Also weisen wir auch diese zu.

Das Fenster benötigt jetzt noch eine individuelle Breite und Höhe.

Die Zuweisung erfolgt mit einer Methode, namens setSize().
Und dieser Methode übergibst du dann zwei Zahlen.
Zuerst die Breite und dann die Höhe.

Da es sich hierbei um eine Instanzmethode handelt, rufst du diese an der Referenzvariable auf.

import javax.swing.JFrame;//Importanweisung

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame(); //neues Frame bzw. Fenster
		fenster.setSize(600, 400);//Aufruf der Methode an der Referenzvariablen und Setzen der Breite 600 und Höhe 400
	}
}

So eine Höhe und Breite haben wir zugewiesen.

Klicke nochmals auf „RUN“ und schau was passiert.
Auch jetzt rührt sich noch nichts.

Eine Variable muss noch geändert werden.
Und zwar die Variable für die Sichtbarkeit.

Das Fenster ist noch nicht sichtbar.

Zum Sichtbarmachen nutze die Methode setVisible().
Als Parameter kannst du der Methode entweder den Wert true für sichtbar oder false für unsichtbar übergeben.

import javax.swing.JFrame;//Importanweisung

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame(); //neues Frame bzw. Fenster
		fenster.setSize(600, 400);//Setzen der Breite 600 und Höhe 400
		fenster.setVisible(true);//Fenster ist sichtbar, da true
	}
}

Klicke nochmals auf „RUN“ und jetzt erscheint das Fenster.

Java Fenster erzeugen JFrame

Lass uns jetzt dieses Grundgerüst etwas individueller gestalten.

Jedem Dialogfenster kannst du einen Titel oder Namen zuweisen.

Und so geht’s.

import javax.swing.JFrame;//Importanweisung

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame("Neues Fenster"); //neues Frame bzw. Fenster
		fenster.setSize(600, 400);//Setzen der Breite 600 und Höhe 400
		fenster.setVisible(true);//Fenster ist sichtbar
	}
}

Du kannst dem Objekt direkt beim Konstruktoraufruf einen String übergeben.
Der zugewiesene String-Wert erscheint dann am oberen Rand des Dialogfensters als Name oder Titel.

Java-Fenster-erzeugen-mit-individuellen-Namen

Um den Titel nachträglich zu vergeben oder zu ändern, bietet dir Java die Instanzmethode setTitle() an.

import javax.swing.JFrame;//Importanweisung

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame("Neues Fenster"); //neues Frame bzw. Fenster
		fenster.setSize(600, 400);//Setzen der Breite 600 und Höhe 400
		fenster.setVisible(true);//Sichtbarkeit des Fensters
		fenster.setTitle("Hallo Matze");//Änderung des Titels
	}
}

In der Parameterliste der Methode übergibst du den String und dieser Titel erscheint dann ebenfalls am oberen Rand.

Java-Fenster-erzeugen-Titel-ändern

Was soll passieren, wenn das Fenster geschlossen wird

Da gibt es zwei Möglichkeiten.
Und zwar wird einfach nur das Fenster geschlossen oder das Programm wird komplett beendet.

In unserem Fall wird lediglich das Fenster geschlossen.
Um dies zu demonstrieren,

  • lege ich ein zweites Fenster an
  • Starte das Programm
  • Und schließe ein Fenster durch einen Klick auf das X oben in der Ecke.

Java-Fenster-schließen

import javax.swing.JFrame;//Importanweisung

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame("Neues Fenster"); //neues Frame bzw. Fenster		
		fenster.setSize(600, 400);//Setzen der Breite 600 und Höhe 400
		fenster.setVisible(true);//Sichtbarkeit des Fensters
		fenster.setTitle("Hallo Matze");//Änderung des Titels
		
		JFrame fensterZwei = new JFrame("Zweites Fenster"); //zweites Frame bzw. Fenster		
		fensterZwei.setSize(500, 300);//Setzen der Breite 500 und Höhe 300
		fensterZwei.setVisible(true);//Sichtbarkeit des Fensters
	}
}

Wenn du es selbst ausprobierst, wirst du feststellen, dass sich lediglich das Fenster schließt.
Manchmal ist es aber schon sinnvoll, dass sich alle Fenster auf einmal schließen und das Programm komplett beendet wird.

Um dies zu erreichen musst du dem entsprechenden Fenster eine Anweisung mitgeben.
Die Instanzmethode dazu nennt sich setDefaultCloseOperation().
In der Parameterliste übergibst du die Konstante JFrame.EXIT_ON_CLOSE.

import javax.swing.JFrame;//Importanweisung

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame("Neues Fenster"); //neues Frame bzw. Fenster		
		fenster.setSize(600, 400);//Setzen der Breite 600 und Höhe 400
		fenster.setVisible(true);//Sichtbarkeit des Fensters
		fenster.setTitle("Hallo Matze");//Änderung des Titels
		
		JFrame fensterZwei = new JFrame("Zweites Fenster"); //zweites Frame bzw. Fenster		
		fensterZwei.setSize(600, 400);//Setzen der Breite 600 und Höhe 400
		fensterZwei.setVisible(true);//Sichtbarkeit des Fensters
		fensterZwei.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Programm wird geschlossen
	}
}

Wenn du jetzt das Fenster „Hallo Matze“ schließt, schließt sich lediglich dieses Fenster.
Falls du allerdings das Fenster „Zweites Fenster“ schließt, schließen sich alle Fenster – und somit das komplette Programm.

Java Fenster schließen Programm schließen

So lassen sich die Dialogfenster anordnen

Da wir bisher schon zwei Fenster haben, sollte man festlegen können – welches im Vordergrund und welches im Hintergrund platziert wird.

Und diese Anordnung vollziehst du mit den Methoden toFront() und toBack().

import javax.swing.JFrame;

public class SwingFenster {

	public static void main(String[] args) {
		JFrame fenster = new JFrame("Neues Fenster"); 		
		fenster.setSize(600, 400);
		fenster.setVisible(true);
		fenster.setTitle("Hallo Matze");
		fenster.toFront();//Vorderes Fenster
		
		JFrame fensterZwei = new JFrame("Zweites Fenster"); 		
		fensterZwei.setSize(600, 400);
		fensterZwei.setVisible(true);
		fensterZwei.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fensterZwei.toBack();//Fenster ist im Hintergrund
	}
}

Zuammenfassung:

  • Dialogfenster bilden in Java das Gründgerüst für eine grafische Benutzeroberfläche GUI.
  • Um nun so ein Java Fenster erzeugen zu können, musst du ein Objekt der Klasse JFRame anlegen.
  • Du kannst diesem JFrame-Objekt beim Konstruktoraufruf einen Titel als String übergeben.
    Oder du kannst diesen Titel nachträglich anlegen oder ändern.
  • Außerdem kannst du festlegen, ob beim Schließen des Fensters das komplette Programm geschlossen werden soll oder nur das einzelne Fenster.

Ähnliche Beiträge

Du bekommst was du vereinbarst – Die Rückgabewerte von Java Methoden

Java Methoden Rückgabetypen

Was du vereinbarst, das bekommst du zurück. Ach wäre es schön, wenn alles im Leben so funktionieren würde. Aber zum Glück funktioniert dieses Prinzip bei deinen Java Methoden. Denn du kannst den Rückgabetypen im Methodenkopf vereinbaren. Doch bevor ich dir zeige, wie du den Rückgabetypen anlegen kannst…. Lass mich dir zeigen, wofür du den Kram […]

So kannst du Java installieren

Java installieren

Bevor du loslegst und deine ersten Java Programme schreibst, benötigst du die entsprechende Arbeitsumgebung. Du solltest also Java installieren. Und diese Arbeitsumgebung beinhaltet dann Bibliotheken für die einzelnen Java-Standard-Klassen, Dateien um deine Programme auszuführen. Dateien um deine Programme zu packen, Logische Verzeichnisstrukturen

Java Übung 11 – Java Objekte in Java Methoden übergeben

Java Übung Java Methoden Objekte

In dieser Java Übung möchte ich dir zeigen, dass du auch in Klassenmethoden auf Objekte und deren Instanzvariablen zugreifen kannst. Schau dir dazu einmal diesen Java Code an. public class Umwandlung { private int x; public int getX() { // getter Methode return x; } public void setX(int x) { // setter Methode this.x = […]

Java Vererbung findet auch zwischen Einkaufstüten und Polizeiautos statt

Java Vererbung

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“ Irrer Titel, oder? Aber mal Hand aufs Herz. Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam? Ich verrate dir etwas: Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten. Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden. […]

So lassen sich Java Strings in char zerlegen

Java Strings zerlegen char

Java Strings sind Zeichenketten. Und diese Zeichenketten lassen sich aufsplitten und in ihre Einzelteile zerlegen. Ich möchte dir in diesem Beitrag Möglichkeiten vorstellen, wie du Strings in Character-Datentypen zerlegen, extrahieren und die Einzelteile in Arrays speichern kannst.

Java Binärzahl in Dezimalzahl umwandeln – So geht’s.

Java-Binärzahl-umrechnen

Erinnerst du dich? In einer der letzten Beiträge haben wir uns die Zusammenhänge zwischen dem dualen und dem dezimalen Zahlensystem angeschaut. Aber wir haben noch keine Java Binärzahl in eine Dezimalzahl verwandelt. Zumindestens nicht praktisch…. Stattdessen…. Haben wir festgestellt, dass beide Zahlensysteme im Grunde genommen sehr ähnlich sind. Beim Dezimalsystem spielt die Zahl 10, als […]

So nutzt du getter und setter Methoden bei der Java Programmierung

Java Keyword private

In diesem Artikel möchte ich dir zeigen, wie du Instanzvariablen innerhalb der Java Klasse schützt. Und den Zugriff nur noch indirekt über getter und setter Methoden anbietest. Stell dir vor. Du hast ein Programm zur Lagerverwaltung geschrieben. Dieses Programm dient Möbelhäusern dazu, ihre Bestände zu verwalten. Und das Programm erwartet vom Nutzer gewisse Eingaben zu […]

Java Übung 27 – Auf zur Mathe-Olympiade

Java Übung Mathe Olympiade

In dieser Java Übung möchte ich mit dir ein Programm erstellen, welches ein Mathematik-Test oder eine Mathe-Olympiade simuliert. Du kennst das vielleicht noch aus der Schule. Matheolympiade- Da wurden aus allen vier Grundrechenarten, Aufgaben formuliert. Die Schüler mussten diese Aufgaben lösen. Die Lehrer kontrollierten die Lösungen. Und der Schüler, welcher die wenigsten Fehler hatte – […]