Dies ist eine alte Version des Dokuments!
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 auf Ereignisse (z.B. anklicken) reagieren, müssen diese Objekte in einer Unterklasse App sein.
Fenster mit Label
- Klassen, die grafische Oberflächen zur Verfügung stellen, müssen Unterklassen der Klasse App sein (Zeile 4 und Zeile 1). Im Konstruktor muss dann mit super(…) der Konstruktor von App aufgerufen werden. Die Parameter von super sind die Fensterbreite und Höhe in Pixel
- 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 this.lblText = new Label(50,25,100,25,"Hallo Welt"); } }
- 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 Label lblName, lblText; // Etiketten TextField txtName; // Texteingabe Button btnWrite; // Schaltfläche // Konstruktor public GUIexample(){ super(250,200); // Fenster der Größe 400x600 erzeugen this.window.setTitle("Hallo"); // Label erzeugen this.lblName = new Label(50,25,50,25,"Name: "); this.lblName.setTextAlignment("right"); // Textfeld erzeugen this.txtName = new TextField(100,25,100,25,""); // Aufgabelabel this.lblText = new Label(50,100,150,25,"Is there anybody out there?"); // Button erzeugen this.btnWrite = new Button(50,150,100,25,"Klick mich"); this.btnWrite.setOnButtonClicked("write"); } public void write(){ String name = this.txtName.getContentAsString(); if(name.length() == 0){ this.lblText.setText("Hallo Welt!"); }else{ this.lblText.setText("Hallo "+name + "!"); } } }