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