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] – gelöscht - Externe Bearbeitung (Unknown date) 127.0.0.1 | de:jltk:gui:example [2025/02/27 21:03] (aktuell) – jltk | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Grafische Benutzeroberflächen erzeugen ====== | ||
+ | |||
+ | ===== Überblick ===== | ||
+ | |||
+ | //jltk// stellt eine einfache Möglichkeit zur Verfügung kleine [[wpde> | ||
+ | |||
+ | Damit die grafischen Elemente (Komponenten) auf Ereignisse (z.B. anklicken) reagieren, müssen diese Objekte in einer Unterklasse [[de: | ||
+ | |||
+ | Auf der Seite [[de: | ||
+ | |||
+ | |||
+ | |||
+ | ===== 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...// | ||
+ | |||
+ | Erzeugt man dann ein Objekt aus dieser Klasse, so wird die zugehörige GUI erstellt. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
+ | <file java FensterMitLabel.java | ||
+ | import jltk.App; | ||
+ | import jltk.gui.*; | ||
+ | |||
+ | public class FensterMitLabel extends App{ // FensterMitLabel ist Unterklasse der Klasse App | ||
+ | |||
+ | // Etikett | ||
+ | Label lblText; | ||
+ | | ||
+ | // Konstruktor | ||
+ | public FensterMitLabel(){ | ||
+ | super(200, | ||
+ | this.lblText = new Label(50, | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * 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: | ||