Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage
<< | < | > | >> | API | Kapitel 27 - Fenster

## 27.2 Aufrufen und Schließen eines Fensters

- 27.2 Aufrufen und Schließen eines Fensters

Um ein Fenster auf dem Bildschirm anzuzeigen, muß zunächst die passende Fensterklasse instanziert werden. Dafür kommen die Klassen `Window`, `Frame`, `Dialog`, `Applet` und `FileDialog` in Frage. Da die beiden Dialogklassen und die Entwicklung von Applets später behandelt werden, verbleiben die Klassen `Window` und `Frame`. Beide Klassen haben unterschiedliche Konstruktoren:

    public Frame()

    public Frame(String title)
| java.awt.Frame

    public Window(Frame parent)
| java.awt.Window

Ein Objekt der Klasse `Frame` kann demnach parameterlos oder mit einem `String`, der den Titel des Fensters angibt, erzeugt werden. Bei der Instanzierung eines `Window`-Objekts muß dagegen das Vaterfenster übergeben werden.

Nach der Instanzierung wird die Methode `setVisible` aufgerufen, um das Fenster anzuzeigen:

    public void setVisible(boolean visible)
| java.awt.Component

Der Parameter `visible` gibt an, ob das Fenster angezeigt oder geschlossen werden soll. Wird `true` übergeben, so wird es angezeigt, andernfalls geschlossen. Die Aufrufsyntax ist für `Frame` und `Window` identisch, denn `setVisible` wurde aus der gemeinsamen Oberklasse `Component` geerbt. Ein Aufruf von `setVisible(true)` legt die Fensterressource an, stattet das Fenster mit einer Reihe von Standardeigenschaften aus und zeigt es auf dem Bildschirm an.

Um ein Fenster zu schließen, sind die Methoden `setVisible(false)` und `dispose` aufzurufen:

    public void dispose()
| java.awt.Window

`setVisible(false)` macht das Fenster unsichtbar, und `dispose` gibt die zugeordneten Windows-Ressourcen frei und entfernt das Fenster aus der Owner-Child-Registrierung.

|  | In der aktuellen Implementierung enthält `dispose` am Anfang einen Aufruf von `hide`, durch das seinerseits ein implizites `setVisible(false)` aufgerufen wird. Daher wäre es auch möglich, ein Fenster mit einem einzigen Aufruf von `dispose` zu schließen. Der zusätzliche Aufruf von `setVisible(false)` ist allerdings nicht schädlich und macht die Aufgabentrennung beider Methoden deutlich. |  |
Hinweis

Das folgende Beispiel zeigt ein Programm, das einen `Frame` auf dem Bildschirm anzeigt, ihn nach ca. 3 Sekunden wieder entfernt und das Programm dann beendet:

    001 /* Listing2701.java */
    002
    003 import java.awt.*;
    004
    005 public class Listing2701
    006 {
    007   public static void main(String[] args)
    008   {
    009     Frame frame = new Frame("Frame entfernen");
    010     frame.setSize(300,200);
    011     frame.setVisible(true);
    012     try {
    013        Thread.sleep(3000);
    014     } catch (InterruptedException e) {
    015        //nichts
    016     }
    017     frame.setVisible(false);
    018     frame.dispose();
    019     System.exit(0);
    020   }
    021 }
| Listing2701.java

Listing 27.1: Anzeigen und Entfernen eines Frames

Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de