Grafische Benutzeroberflächen erzeugen
Überblick
jltk stellt eine einfache Möglichkeit zur Verfügung kleine Grafische Benutzeroberflächen (GUI- Graphical User Interface) zu erstellen. Jede Komponente der grafischen Oberfläche ist dabei ein Objekt, das im Quelltext erzeugt werden muss. Der Konstrukor nimmt dabei die Position, die Größe und weitere Informationen entgegen.
Damit die grafischen Elemente (Komponenten) auf Ereignisse (z.B. anklicken) reagieren, müssen diese Objekte in einer Unterklasse App sein.
Auf der Seite Komponenten einer grafischen Oberfläche werden alle Element, die man in einer GUI verwenden kann, vorgestellt.
Beispiel: Fenster mit Label
Das erste Beispiel erzeugt ein Fenster mit einem Label (Etikett) zur Verfügung. Du kannst den Quelltext als Datei herunterladen und in blueJ über Datei → Klasse aus Datei hinzufügen… importieren. Denke daran, das die jltk-Bibliothek importiert ist.
Erzeugt man dann ein Objekt aus dieser Klasse, so wird die zugehörige GUI erstellt.
- FensterMitLabel.java
- import jltk.App; // Klasse App
- import jltk.gui.*; // GUI Komponenten
- public class FensterMitLabel extends App{ // FensterMitLabel ist Unterklasse der Klasse App
- // Etikett
- Label lblText;
- // Konstruktor
- public FensterMitLabel(){
- super(200,100); // Fenster der Größe 400x600 erzeugen
- }
- }
- Zeile 1: Klasse jltk.App einbinden
- Zeile 2: Alle Klassen aus dem Paket jltk.gui einbinden. Hier liegen die Klassen für die einzelnen Komponenten.
- Zeile 4: Klassen, die grafische Oberflächen zur Verfügung stellen, müssen Unterklassen der Klasse App sein.
- Zeile 7: Ein Attribut vom Typ Label anlegen.
- Zeile 11: Im Konstruktor muss dann mit super(…) der Konstruktor von App aufgerufen werden. Die Parameter von super sind die Fensterbreite und Höhe in Pixel
- Zeile 12: Ein Objekt aus der Klasse Label wird erzeugt und dem Attribut lblText zugewiesen.
- Die ersten beiden Parameter sind die x- und y-Koordinate der linken oberen Ecke des Labels auf auf dem Fenster.
- Der dritte und vierte Parameter ist die Breite und Höhe des Labels.
- Der Fünfte Parameter ist der Text, des in dem Label steht.
Beispiel: Label, TextField und Button
Das folgende Beispiel zeigt eine Grafische Benutzeroberfläche mit einem Label (Etikett), TextField (Texteingabe) und einem Button (Schaltfläche). Wir der Button angeklickt, so wird eine Methode ausgeführt.
- GUIexample.java
- import jltk.App; // Klasse App
- import jltk.gui.*; // GUI Komponenten
- public class GUIexample extends App{ // GUIexample ist Unterklasse der Klasse App
- //Komponenten der grafischen Oberfläche
- // Konstruktor
- public GUIexample(){
- super(250,200); // Fenster der Größe 400x600 erzeugen
- this.window.setTitle("Hallo");
- // Label erzeugen
- this.lblName.setTextAlignment("right");
- // Textfeld erzeugen
- // Aufgabelabel
- // Button erzeugen
- this.btnWrite.setOnButtonClicked("write");
- }
- public void write(){
- if(name.length() == 0){
- this.lblText.setText("Hallo Welt!");
- }else{
- this.lblText.setText("Hallo "+name + "!");
- }
- }
- }
- Zeile 8-10: Für jede Komponente wird eine Attribut angelegt.
- Zeile 15: Mit
this.window
kann man auf das Fenster (kommt aus der Klasse App) zugreifen. Hier wird der Title (siehe Bild oben) geändert. - Zeile 25: Dem Button wird mitgeteilt, dass er die Methode write() (Zeile 28) ausführen muss, wenn er angeklickt wird
- Zeile 28-35: Wird die Methode aufgerufen, wird zunächst der Inhalt des Textfelds ausgelesen. Ist dieser leer, wird Hallo Welt! in das Label geschrieben, ansonsten Hallo gefolgt von dem Textfeldinhalt und dem Ausrufezeichen.