prev up inhalt next

Swing-Beispiel

In diesem Abschnitt wird ein einfaches Beispiel gezeigt, das die Worte ``Hello World!'' in einem eigenen Fenster darstellt.

Das Beispiel besteht aus zwei Klassen. Die Klasse Hello stammt von JPanel ab und besitzt nur einen Konstruktor. Bei der Instanziierung wird ein JLabel der Größe $160 \cdot 120$ Pixel (Breite mal Höhe) mit dem mittig plazierten String Hello World! erzeugt und zum Gebiet ``Zentrum'' des Containers (JPanel) hinzugefügt. Die Instanz der Klasse Hello enthält somit alle GUI-Komponenten, die die spezielle Funktionalität der Applikation ausmachen (hier die Darstellung eines Strings):

package hello;

import java.awt.Dimension;                       // Importliste mit allen
import java.awt.BorderLayout;                    // benoetigten Klassen aus
import javax.swing.UIManager;                    // dem AWT und aus den 
import javax.swing.JLabel;                       // Swing-Komponenten
import javax.swing.JPanel;

public class Hello extends JPanel {
  public Hello() {
    JLabel l = new JLabel("Hello World!");       // Label mit Text erzeugen
    l.setHorizontalAlignment(JLabel.CENTER);     // horizontal zentrieren
    l.setPreferredSize(new Dimension(160,120));  // Groesse festlegen

    add(l, BorderLayout.CENTER);                 // Label hinzufuegen
  }
}

Es fehlt noch der Top-Level Container, der den Rahmen für die Applikation bildet, indem er die Instanz der Klasse Hello aufnimmt und dadurch diese auf der grafischen Benutzungsoberfläche darstellbar macht. Diese Funktion übernimmt die Klasse Main. Sie besteht aus einem Konstruktor, der Methode main und der Methode init der Klasse JApplet.

Main ist so geschrieben, daß sie sowohl als Applikation als auch in Form eines Applets starten kann.

Die Trennung zwischen Darstellung des Fensters und der Verwaltung/Darstellung des Fensterinhaltes in zwei Klassen bietet die Möglichkeit den Code der Klasse Main in zukünftigen Beispielen wiederzuverwenden (lediglich der Titel müsste angepaßt werden).



Unterabschnitte
prev up inhalt next