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

Den Java Vererbungsbaum nach dem Ist-Es-Prinzip richtig entwerfen

Java Vererbungsbaum

Vererbungsbaum in Java – klingt erstmal komisch. Dennoch wird dies so bezeichnet. Gemeint sind damit – die einzelnen Hierarchiestufen oder Vererbungsebenen – von der Superklasse bis runter zu den Kindklassen. Wie sieht das nun konkret aus? Vererbung bedeutet: Du definierst einen allgemeinen Typen – zB. Möbel Und dann implementierst du eine Unterklasse, welche die Oberklasse […]

Java lernen von Kopf bis Fuß

Wenn du Java lernen möchtest, kannst du an meinem kostenlosen Java Kurs teilnehmen. Aber manch Einer hätte gern eine zweite Meinung. Und da bieten sich natürlich Java Bücher an. Eines dieser Java Bücher möchte ich dir jetzt vorstellen. Dieses Buch nennt sich „Java von Kopf bis Fuß“. Was kannst du von diesem Buch erwarten? Also […]

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

So organisierst und verwaltest du ganz bequem deine Java Projekte

Du kennst das auch. Denn du bist ja fleißig. Und weil du so fleißig bist, hast du mitunter auch mehrere Java Projekte gleichzeitig laufen. Und dann kommt es vor, dass du enorm viele Java Projekte am Laufen hast. Und dein Package-Explorer wird extrem unübersichtlich. In diesem Beitrag möchte ich dir zwei Varianten vorstellen, wie du […]

So nutzt du das Java Keyword public

Java Keyword public

Java Programme bestehen aus Java Klassen. Und der Zugriff auf eine Java Klasse sollte nach außen immer gewährleistet sein. Was bedeutet das? Du solltest in jeder Klasse die Möglichkeit haben, ein Objekt einer anderen Klasse anzulegen. Gerade durch diese Möglichkeit macht doch das ganze Klassenkonstrukt erst Sinn.

Java Vererbung:
Die 3 Schablonen für deine Java Objekte

Java Vererbung Beispiel

Im letzten Beitrag habe ich dir das Java Vererbung Konzept an einem Beispiel vorgestellt. In dem Beispiel-Rollenspiel gab es Klassen zu Helden und Superhelden. Ich habe dir die Vererbungshierarchien theoretisch erläutert. Jetzt geht es ans Praktische. In diesen Beitrag lernst du: Wie du bestehende Java Klassen erweiterst Wie du Objekte aus den erweiterten Klassen erstellen […]

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

Die vier wichtigen Phasen um Java Objekte zu erstellen

Java Objekte anlegen

Wie werden aus deinen Java Klassen richtig nützliche Java Objekte? Das ganze läuft in vier Phasen ab. Und diese Phasen möchte ich dir in diesem Beitrag vorstellen. Ob das nützlich ist? Schau dir das Bild an. Am Ende dieses Beitrages wirst du wissen, warum Eclipse dir hier eine Fehlermeldung gibt und wie du dieses Problem […]