12 Welche Möglichkeiten bietet Java, ein Fenster zu erzeugen? - Sammlung von Techniken zum Layout-Projekt
Über die Java-Standard-Bibliotheken, stehen mindestens zwei möglichkeiten zur Verfügung ein Fenster zu erzeugen: Frame und JFrame. Da dies die Grundvoraussetzung zur Erzeugung von GUI-Anwendungen ist und dies auch notwendig zur Realisierung des Layout-Projekts ist und die bestehenden Möglichkeiten zu Beginn etwas verwirren können, werden diese hier in konzentrierter, einfacher Weise dargestellt:
Fenster in der main-Methode erzeugen
Die einfachste Möglichkeit besteht darin, ein Fenster direkt durch einen Aufruf in der main-Methode zu erzeugen.
|
//Codebeispiel wird innerhalb der Vorlesung entwickelt und danach an dieser Stelle ergänzt
Code 12-1: Hauptklasse.java
Fenster durch eine Klasse, die von Fenster erbt erzeugen
Wenn man von der Fenster-Klasse (JFrame) erbt, hat man die Möglichkeit, einen eigenen Konstruktor zu schreiben, der z.B. Titel, Position und Größe setzt. Auf diese Weise wird die Benutzung dieser Klasse einfacher. Zudem macht es logisch Sinn, dass Fenster als übergeordnete Klasse erscheint "in der" andere Elemente enthalten sind.
//Codebeispiel wird innerhalb der Vorlesung entwickelt und danach an dieser Stelle ergänzt
Code 12-2: FensterErben.java
Fenster in einer fremden Hauptklasse erzeugen
Eine auf den ersten Blick etwas abwegigere aber bei zweitem Hinsehen auch sinnvolle Möglichkeit ist es, ein Fenster im Konstruktor einer völlig anderen Klasse zu erzeugen. Da Lauscher die Schnittstelle ActionListener implementieren muß, um auf Knopfdrücke reagieren zu können, muß diese Klasse in jedem Fall selber geschrieben werden. Alle anderen Klassen können in ihrer Standardversion (ohne Vererbung) benutzt werden.
//Codebeispiel wird innerhalb der Vorlesung entwickelt und danach an dieser Stelle ergänzt
Code 12-3: Lauscher.java
"Long Version" zu Knopf
Das nachfolgende Programm setzt die gleiche Funktionalität um wie das vorhergehende, bneutzt aber zwei selbst geschriebene Klassen. Das macht die Programmstruktur zumindest für den Einstieg übersichtlicher.
//Codebeispiel wird innerhalb der Vorlesung entwickelt und danach an dieser Stelle ergänzt
Code 12-4: Fenster.java
//Codebeispiel wird innerhalb der Vorlesung entwickelt und danach an dieser Stelle ergänzt
Code 12-5: Lauscher.java