Lernpfad GUI-Programmierung mit dem Java-Editor

2.2 Frame erstellen

Vorbemerkung: Java bietet zur Gestaltung von graphischen Oberflächen zwei Pakete von Klassen an. In diesem Lernpfad wird nur auf das Abstract Window Toolkit (AWT) eingegangen.

Der erste Schritt für eine graphische Oberfläche ist das Erstellen eines Fensters in Form eines Objekts der Klasse Frame. Innerhalb dieses Frames können dann weitere andere Oberflächenkomponenten platziert werden. Im Java-Editor geht man dazu im Symbolleistenbereich zum zum Reiter "Programm" und wählt dann "Frame" aus. (Abbildung unten)

Es wird ein Speicherort abgefragt. Da im Beispielprojekt mehrere Dateien verwendet werden, empfiehlt es sich einen neuen Ordner zu erstellen und dort einen aussagekräftigen Dateinamen, z. B. Sommerzeit zu vergeben. Es werden zwei Dateien erzeugt:

  • Sommerzeit.java
    dort ist der Quelltext der Klasse Sommerzeit gespeichert
  • Sommerzeit.jfm
    dort ist das Formular gespeichert, auf dem die Oberfläche entworfen werden kann (vgl. Java-Editor GUI).

Dementsprechend öffnen sich auch das Quelltext--Fenster und das Formular-Fenster. Wie ebenfalls in Kapitel 1.3 Java-Editor GUI beschrieben steht auch der Objektinspektor für das Frame zur Verfügung:
Dort kann die Höhe und Breite des Frames verändert werden. Erstellt ein Frame! Zur Erinnerung mit den Schaltflächen und kann man das Programm übersetzen und starten. Wenn es funnktioniert, verändert die Größe und startet nochmal.

 

 

 

 

 


Hinweise für Experten:

  • Frame ist eine Oberklasse. Mit dem oben beschriebenen Vorgehen wird eine Unterklasse Sommerzeit von Frame abgeleitet.
  • Im Konstruktor der Klasse Sommerzeit werden die Attributwerte für das Frame gesetzt.
  • Der JavaEditor sorgt immer dafür, dass das Frame in der Mitte des Bildschirms erscheint. Dies wird erreicht durch die folgenden vier Zeilen Quelltext:
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
  • Möchte man eine andere Position, so löscht man die ersten drei Zeilen und gibt beim Aufruf der Methode setLocation konkrete Pixelwerte für die linke obere Ecke an, z. B. setLocation(30, 200)
  • Bei der GUI-Programmierung ist es häufig üblich Komponenten nicht direkt einem Frame einzufügen. Vielmehr werden die Komponenten in ein Objekt der Klasse Panel eingefügt und dieses wiederum dann in das Frame-Objekt eingefügt. Objekte der Klasse Panel sind Behälter die eben andere Behälter-Objekte oder einfache Oberflächenkomponenten enthalten können. Klingt kompliziert, ist es nicht. Man kann es sich wie eine Gruppierung von den KOmponenten vorstellen. Der Vorteil liegt darin, dass man für jedes Panel eigene Layouteinstellungen vornehmen kann.
    Das ganze ist für diesen Lernpfad nicht relevant. Da der Java-Editor mit einem Panel arbeitet, sollte mit diesem kleinen Ausflug die folgenden zwei Zeilen erklärt werden, damit man bei einem Blick in den Quelltext nicht die Orientierung verliert.
Panel cp = new Panel(null);
add(cp);