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: | ||