Java Reference
In-Depth Information
Sie sehen, dass die Entwicklungsumgebung allein durch die Auswahl eines Frames als
zu erstellende Klasse einen recht umfangreichen Quellcode erstellt. Es bedarf deshalb
zunächst einer Erläuterung der einzelnen Programmteile, die für Programme mit grafi-
scher Benutzeroberfläche typisch sind.
Die main -Methode startet mit SwingUtilities.invokeLater(new Runnable() einen neuen
lauffähigen Thread , ohne die normale Sequenz der Ereignisbehandlung zu stören. Als
Thread wird in einem Multitasking-fähigen Betriebssystem ein eigenständiger Prozess
bezeichnet. Jedes Programm, das unter einem solchen Betriebssystem gestartet wird, ist
zunächst ein Thread. Sie werden später sehen, dass auch ein einziges Programm meh-
rere Threads starten kann, die dann quasi parallel abgearbeitet werden.
9
Die run() -Methode des Runnable-Objekts wird nur ausgeführt, wenn sie das Ende der
Ereigniswarteschlange erreicht. Immer wenn eine Swing-Komponente außerhalb einer
Listener-Methode verändert werden soll, muss invokeLater verwendet werden. Das
mag im Augenblick vielleicht etwas verwirrend klingen, aber Sie brauchen sich darüber
keine Gedanken zu machen, denn die Methode wird richtigerweise hier von Jigloo ein-
gesetzt und muss von Ihnen auch nicht verändert werden.
In der run() -Methode wird mit JFrame1 inst = new JFrame1(); eine Instanz des Objekts
JFrame1 erzeugt. Mit inst.setLocationRelativeTo(null); wird der Frame auf dem Bild-
schirm zentriert, und inst.setVisible(true); setzt die Eigenschaft visible auf true
und stellt sicher, dass der Frame auch dargestellt wird.
Der Konstruktor aus Listing 9.2 ruft zuerst den Konstruktor der Vorfahrenklasse auf
und initialisiert anschließend, wie der Name schon zum Ausdruck bringt, die grafische
Benutzeroberfläche.
public JFrame1() {
super();
initGUI();
}
Listing 9.2 Konstruktor von JFrame1
In dieser Schablonenmethode wird der Frame auf die spätere Darstellung vorbereitet:
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
pack();
setSize(400, 300);
} catch (Exception e) {
Search WWH ::




Custom Search