Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
de:jltk:gui:temperaturgui [2023/12/14 12:44] – jltk | de:jltk:gui:temperaturgui [2023/12/18 19:30] (aktuell) – jltk | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Beispiel: | + | ====== Beispiel: |
- | Diese Anleitung zeigt, wie die abgebildete Benutzeroberfläche (graphical user interface - gui) zur Umrechnung einer Temperatur von Celsius in Fahrenheit erstellt wird. | + | Diese Anleitung zeigt, wie die abgebildete |
{{ : | {{ : | ||
- Die Maße des Fensters (Window) betragen 300x200 Pixel.{{ : | - Die Maße des Fensters (Window) betragen 300x200 Pixel.{{ : | ||
- | - 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 // | + | - 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 // |
import jltk.*; | import jltk.*; | ||
import jltk.gui.*; | import jltk.gui.*; | ||
Zeile 19: | Zeile 19: | ||
} | } | ||
</ | </ | ||
+ | - Die einzelnen Komponenten einer GUI, die man nun auf dem Fenster platzieren kann, findet man in dieser Übersicht: [[de: | ||
+ | * Ein //Label// für die Überschrift. | ||
+ | * Ein // | ||
+ | * Ein // | ||
+ | * 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, | ||
+ | import jltk.*; | ||
+ | import jltk.gui.*; | ||
+ | public class TemperaturGUI extends App | ||
+ | { | ||
+ | Label lblTitle; | ||
+ | TextField txtCelsius, txtFahrenheit; | ||
+ | Button btnCalc; | ||
+ | |||
+ | public TemperaturGUI() | ||
+ | { | ||
+ | super(300, | ||
+ | this.window.setTitle(" | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | - Für alle Komponenten muss die Position der linken, oberen Ecke sowie die Breite und Höhe angegeben werden. Die folgenden Abbildung zeigt die Position am Beispiel eines Textfeldes.{{ : | ||
+ | - Die Koordinaten und die Maße müssen dem Konstruktor des Textfeldes übergeben werden:< | ||
+ | this.txtCelsius = new TextField(10, | ||
+ | - Der folgende Quelltextauszug zeigt das Erzeugen der vier Komponenten. Die einzelnen Komponenten besitzen eine Vielzahl von Methoden, mit denen man das Verhalten steuern kann. Hier wird z.B. in Zeile 6 und 7 die Schrift und der Schriftstil des Labels für die Überschrift geändert. Alle Methoden kann man in der [[http:// | ||
+ | { | ||
+ | super(300, | ||
+ | this.window.setTitle(" | ||
+ | this.lblTitle = new Label(10, | ||
+ | this.lblTitle.setFontSize(16); | ||
+ | this.lblTitle.setFontStyle(true, | ||
+ | |||
+ | this.txtCelsius = new TextField(10, | ||
+ | |||
+ | this.txtFahrenheit = new TextField(215, | ||
| | ||
+ | this.btnCalc = new Button(10, | ||
+ | }</ | ||
+ | - Erzeugt man nun ein Objekt der Klasse TemperaturGUI, | ||
+ | - this.btnCalc.setOnButtonClicked(" | ||
+ | - Die Methode muss nun angelegt werden (in derselben Klasse wie der Button). In dieser Methode muss dann implementiert werden, was bei einem Buttonklick erfolgen soll. Der folgende Quelltextauszug zeigt die vollständige Methode, darunter befinden sich die Erklärungen.< | ||
+ | public void convert(){ | ||
+ | double celsius = this.txtCelsius.getContentAsDouble(); | ||
+ | double fahrenheit = celsius*1.8+32; | ||
+ | this.txtFahrenheit.setContent(fahrenheit); | ||
+ | }</ | ||
+ | |||
+ | * Wert aus dem Textfeld // | ||
+ | * Diesen Wert in Fahrenheit umrechnen: //celsius · 1.8 + 32// | ||
+ | * Das Rechenergebnis in das Textfeld // | ||
+ | |||
+ | Der Quelltext der gesamten Klasse sieht nun so aus: | ||
| | ||
- | <file java TemperaturGUI.java> | + | <file java |
import jltk.*; | import jltk.*; | ||
import jltk.gui.*; | import jltk.gui.*; | ||
Zeile 44: | Zeile 95: | ||
this.txtFahrenheit = new TextField(215, | this.txtFahrenheit = new TextField(215, | ||
+ | this.txtFahrenheit.disableEdit(); | ||
| | ||
this.btnCalc = new Button(10, | this.btnCalc = new Button(10, |