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:example [2023/12/18 08:42] – ↷ Seitename wurde von de:jltk:gui:gui auf de:jltk:gui:example geändert jltk | de:jltk:gui:example [2025/02/27 21:03] (aktuell) – jltk | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== Überblick ===== | ===== Überblick ===== | ||
- | jltk stellt eine einfache Möglichkeit zur Verfügung kleine [[wpde> | + | //jltk// stellt eine einfache Möglichkeit zur Verfügung kleine [[wpde> |
- | Damit die grafischen Elemente auf Ereignisse (z.B. anklicken) reagieren, müssen diese Objekte in einer Unterklasse [[de: | + | Damit die grafischen Elemente |
- | ===== Erstes Beispiel ===== | + | Auf der Seite [[de:jltk:gui: |
- | <file java GUIexample.java> | + | |
- | import | + | |
- | import jltk.gui.*; // GUI KOmponenten | + | |
- | public class GUIexample extends App{ // GUIexample ist Unterklasse der Klasse | + | |
- | + | ||
- | //Komponenten der grafischen Oberfläche | + | ===== Beispiel: Fenster mit Label ===== |
- | + | ||
- | Label lblTitle, lblCelsius, lblFahrenheit, | + | 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 |
- | TextField txtCelsius; // Texteingabe | + | |
- | Button btnConvert; | + | Erzeugt man dann ein Objekt aus dieser Klasse, so wird die zugehörige GUI erstellt. |
- | | + | |
- | | + | {{ : |
- | | + | |
- | super(400,600); // Fenster der Größe 400x600 erzeugen | + | |
- | this.window.title(" | + | |
- | this.lblTitle | + | <file java FensterMitLabel.java |
- | | + | import jltk.App; |
- | } | + | import jltk.gui.*; // GUI Komponenten |
+ | |||
+ | public class FensterMitLabel extends App{ // FensterMitLabel ist Unterklasse der Klasse App | ||
+ | |||
+ | // Etikett | ||
+ | Label lblText; | ||
+ | |||
+ | | ||
+ | public | ||
+ | super(200,100); // Fenster der Größe 400x600 erzeugen | ||
+ | this.lblText | ||
+ | } | ||
} | } | ||
+ | </ | ||
+ | * Zeile 1: Klasse // | ||
+ | * Zeile 2: Alle Klassen aus dem Paket // | ||
+ | * 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 // | ||
+ | * 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). Wird der Button angeklickt, so wird eine Methode ausgeführt. | ||
+ | |||
+ | <file java GUIexample.java [enable_line_numbers=" | ||
+ | import jltk.App; | ||
+ | import jltk.gui.*; | ||
+ | |||
+ | public class GUIexample extends App{ // GUIexample ist Unterklasse der Klasse App | ||
+ | |||
+ | // | ||
+ | |||
+ | Label lblName, lblText; | ||
+ | TextField txtName; | ||
+ | Button btnWrite; | ||
+ | |||
+ | // Konstruktor | ||
+ | public GUIexample(){ | ||
+ | super(250, | ||
+ | this.window.setTitle(" | ||
+ | // Label erzeugen | ||
+ | this.lblName = new Label(50, | ||
+ | this.lblName.setTextAlignment(" | ||
+ | // Textfeld erzeugen | ||
+ | this.txtName = new TextField(100, | ||
+ | // Aufgabelabel | ||
+ | this.lblText = new Label(50, | ||
+ | // Button erzeugen | ||
+ | this.btnWrite = new Button(50, | ||
+ | this.btnWrite.setOnButtonClicked(" | ||
+ | } | ||
+ | |||
+ | public void write(){ | ||
+ | String name = this.txtName.getContentAsString(); | ||
+ | if(name.length() == 0){ | ||
+ | this.lblText.setText(" | ||
+ | }else{ | ||
+ | this.lblText.setText(" | ||
+ | } | ||
+ | } | ||
+ | } | ||
</ | </ | ||
+ | * Zeile 8-10: Für jede Komponente wird eine Attribut angelegt. | ||
+ | * Zeile 15: Mit '' | ||
+ | * 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, | ||
+ | |||
+ | ===== Siehe auch ===== | ||
+ | |||
+ | * [[de: | ||
+ | * [[de: | ||
- | ===== Komponenten einer GUI ===== | ||
- | {{ : |