Dies ist eine alte Version des Dokuments!
Beispiel: Grafische Benutzeroberfläche für einen Temperaturrechner
Diese Anleitung zeigt, wie die abgebildete grafische Benutzeroberfläche (graphical user interface - gui) zur Umrechnung einer Temperatur von Celsius in Fahrenheit erstellt wird.
- Alle grafischen Oberflächen die mit jltk erzeugt werden, sind Unterklassen der Klasse App. Im Konstruktor der Unterklasse muss man den Konstruktor der Elternklasse App mit super(…) aufrufen. Die beiden Parameter geben die Größe des Fensters an. Auf das Fenster, das die Klasse App erzeugt, kann man über das Attribut window zugreifen. Hier wird in Zeile 10 der Fenstertitel gesetzt.
- import jltk.*;
- import jltk.gui.*;
- public class TemperaturGUI extends App
- {
- public TemperaturGUI()
- {
- super(300,200);
- this.window.setTitle("Temperaturrechner");
- }
- }
- Die einzelnen Komponenten einer GUI, die man nun auf dem Fenster platzieren kann, findet man in dieser Übersicht: Komponenten einer GUI. Für den Temperaturrechner benötigt man insgesamt 4 Elemente:
- Ein Label für die Überschrift.
- Ein Textfeld für die Eingabe der Temperatur in Grad Celsius.
- Ein Textfeld für die Ausgabe der Temperatur in Grad Fahrenheit.
- Ein Button zum Starten der Berechnung.
- Für jedes Element benötigt man ein Attribut der zugehörigen Klasse. Üblicherweise stellt man dem Attributsnamen drei Buchstaben voran, die das Element beschreiben, z. B. txt für ein Textfeld. Der folgende Quelltextauszug zeigt das Anlegen der Attribut in Zeile 6 bis 8.
- Die Koordinaten und die Maße müssen dem Konstruktor des Textfeldes übergeben werden:
this.txtCelsius = new TextField(10,100,75,25,"°C");
Der Konstruktor des Textfeldes bekommt als fünften Parameter zusätzlich noch den Text, der am Anfang darin stehen soll.
- TemperaturGUI.java
- import jltk.*;
- import jltk.gui.*;
- public class TemperaturGUI extends App
- {
- Label lblTitle;
- TextField txtCelsius, txtFahrenheit;
- Button btnCalc;
- public TemperaturGUI()
- {
- super(300,200);
- this.window.setTitle("Temperaturrechner");
- this.lblTitle.setFontSize(16);
- this.lblTitle.setFontStyle(true, false);
- this.txtFahrenheit.disableEdit();
- this.btnCalc.setOnButtonClicked("convert");
- }
- public void convert(){
- double celsius = this.txtCelsius.getContentAsDouble();
- double fahrenheit = celsius*1.8+32;
- this.txtFahrenheit.setContent(fahrenheit);
- }
- }