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

27.2 Aufrufen und Schließen eines Fensters



Um ein Fenster auf dem Bildschirm anzuzeigen, muss 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 muss 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, 5. Auflage, Addison Wesley, Version 5.0.2
 <<    <     >    >>   API  © 1998, 2007 Guido Krüger & Thomas Stark, http://www.javabuch.de