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

So einfach lassen sich Java Strings umkehren

Java Strings umkehren

Kennst du noch das Lied „ANNA“ von Freundeskreis? Da hieß es: Du bist von hinten, wie von vorne A-N-N-A. Solche Namen oder Wörter, welche von hinten nach vorne gelesen – die gleiche Bedeutung haben, nennt man Palindrome. Anna, Ehe oder Ebbe sind recht kurze Palindrome. Aber auch längere zusammengesetzte Palindrome kennt die deutsche Sprache: Regallager […]

Die drei Bestandteile aller Java Klassen

Java Klassen Bestandteile

Java ist eine objektorientierte Programmiersprache. Was heißt das? Ja… Anscheinend hat es etwas mit Objekten zu tun. Also was ist ein Objekt? Ein Objekt ist ein bestimmtes Konstrukt im Programm. Bauen wir ein Spiel. Ein Grafik-Adventure. Du kennst das. Ein Held wird in eine bestimmte Spielwelt hinein gesteckt. Der Held muss mit bestimmten Personen sprechen. […]

So lassen sich Java Arrays kopieren

Java Arrays kopieren

Java Arrays kopieren oder klonen…. Was heißt das eigentlich? Eine Kopie ist eine Reproduktion bzw. die Nachbildung eines Originals. Somit ist jede Fotographie – die Abbildung einer bestimmten optischen Wirklichkeit, zu einem festen Zeitpunkt. Die Kopie einer Buchseite ist das optische Abbild dieser spezifischen Buchseite – auch zu einem festen Zeitpunkt. Wichtig in diesem Zusammenhang […]

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. […]

Polymorphie bringt Vorteile für Java Arrays

Java Polymorphie Arrays

Wenn Java Arrays, Schubladen oder Container sein sollen… Dann wäre der Gebrauch einer solchen Schublade ziemlich einseitig und festgefahren. Denn in jedes Array passen zwar mehrere Daten – aber immer nur vom gleichen Datentyp. Immer gleicher Datentyp? Also eine Schublade nur für Socken, Unterwäsche und der ganze andere Kram passt dann eben nicht hinein. Um […]

Java lernen – 10 nützliche Tipps für Java Anfänger

Java Lernen Anfänger

Wenn du die Programmiersprache Java lernen möchtest, bist du hier prinzipiell erst einmal richtig. Und wenn du es wirklich ernst meinst und in die Java Programmierung einsteigen möchtest, solltest du auch meinen kostenlosen Java Kurs beanspruchen. Wenn du dabei bist, bekommst du: Eine Lektion pro Woche zu den Basics. Hier geht es um die ersten […]

10 ganz nützlichen Feature der Klasse Java Math

In diesem Beitrag geht es um eine spezielle Java Klasse. Die Klasse nennt sich Java Math. Diese ist in der Standardbibliothek von Java enthalten. Warum solltest du diese Klasse kennen? Die Math Klasse bietet dir einen Menge Methoden an, welche zur Berechnung von mathematischen Gleichungen ganz hilfreich sind. Aber auch für Nichtmathematiker ist etwas dabei. […]

Sicherer Schleifendurchlauf mit Do while Schleife

Java Do While Schleife

Es ist doch eigentlich so: Immer wenn du die Anzahl der Schleifendurchläufe nicht kennst, nutzt du in deinen Java Programmen while Schleifen. Doch Java bietet dir neben der While Schleife einen weiteren Schleifentyp an. Diese nennt sich do while Schleife. Was kann die? Eigentlich genau das Gleiche, wie die while Schleife. Mit einem kleinen aber […]

Java Übung: Alles beginnt mit Hello World

Java Übung Hello World

Alles beginnt mit „Hello World“. Sämtliche Java Bücher beginnen mit diesem ersten Beispiel. Auch die Java Übungen sollen mit diesem ersten Programm starten. Definiere eine Klasse „Hello World“. Implementiere die Main Methode. Die Main Methode soll bei Programmaufruf die Bildschirmanzeige „Hallo Welt“ zurückgeben. Die Lösung zur Java Übung „Hallo Welt“ public class HelloWorld{ public static […]

So kannst du Werte aus zwei oder mehreren Java Arrays verrechnen.

Java Arrays verrechnen

Wie kann man Werte aus zwei oder mehreren Java Arrays miteinander verrechnen? Zum Beispiel: Du möchtest alle Werte des ersten Arrays mit allen Werten des zweiten Arrays addieren Oder du möchtest die Summe aus beiden Arrays wissen und erst dann diese miteinander addieren. Was erwartet dich in diesem Beitrag? Zuerst werde ich dir zeigen, wie […]