de:jltk:gui:example

Grafische Benutzeroberflächen erzeugen

jltk stellt eine einfache Möglichkeit zur Verfügung kleine Grafische Benutzeroberflächen (GUI- Graphical User Interface) zu erstellen. Jede Komponente der grafischen Oberfläche ist dabei ein Objekt, das im Quelltext erzeugt werden muss. Der Konstrukor nimmt dabei die Position, die Größe und weitere Informationen entgegen.

Damit die grafischen Elemente (Komponenten) auf Ereignisse (z.B. anklicken) reagieren, müssen diese Objekte in einer Unterklasse App sein.

Auf der Seite Komponenten einer grafischen Oberfläche werden alle Element, die man in einer GUI verwenden kann, vorgestellt.

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… importieren. Denke daran, das die jltk-Bibliothek importiert ist.

Erzeugt man dann ein Objekt aus dieser Klasse, so wird die zugehörige GUI erstellt.

Fenster mit Label

FensterMitLabel.java
  1. import jltk.App; // Klasse App
  2. import jltk.gui.*; // GUI Komponenten
  3.  
  4. public class FensterMitLabel extends App{ // FensterMitLabel ist Unterklasse der Klasse App
  5.  
  6. // Etikett
  7. Label lblText;
  8.  
  9. // Konstruktor
  10. public FensterMitLabel(){
  11. super(200,100); // Fenster der Größe 400x600 erzeugen
  12. this.lblText = new Label(50,25,100,25,"Hello World");
  13. }
  14. }
  • Zeile 1: Klasse jltk.App einbinden
  • Zeile 2: Alle Klassen aus dem Paket jltk.gui einbinden. Hier liegen die Klassen für die einzelnen Komponenten.
  • 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 super(…) der Konstruktor von App aufgerufen werden. Die Parameter von super sind die Fensterbreite und Höhe in Pixel
  • 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.

Das folgende Beispiel zeigt eine Grafische Benutzeroberfläche mit einem Label (Etikett), TextField (Texteingabe) und einem Button (Schaltfläche). Wir der Button angeklickt, so wird eine Methode ausgeführt.

GUIexample.java
  1. import jltk.App; // Klasse App
  2. import jltk.gui.*; // GUI Komponenten
  3.  
  4. public class GUIexample extends App{ // GUIexample ist Unterklasse der Klasse App
  5.  
  6. //Komponenten der grafischen Oberfläche
  7.  
  8. Label lblName, lblText; // Etiketten
  9. TextField txtName; // Texteingabe
  10. Button btnWrite; // Schaltfläche
  11.  
  12. // Konstruktor
  13. public GUIexample(){
  14. super(250,200); // Fenster der Größe 400x600 erzeugen
  15. this.window.setTitle("Hallo");
  16. // Label erzeugen
  17. this.lblName = new Label(50,25,50,25,"Name: ");
  18. this.lblName.setTextAlignment("right");
  19. // Textfeld erzeugen
  20. this.txtName = new TextField(100,25,100,25,"");
  21. // Aufgabelabel
  22. this.lblText = new Label(50,100,150,25,"Is there anybody out there?");
  23. // Button erzeugen
  24. this.btnWrite = new Button(50,150,100,25,"Klick mich");
  25. this.btnWrite.setOnButtonClicked("write");
  26. }
  27.  
  28. public void write(){
  29. String name = this.txtName.getContentAsString();
  30. if(name.length() == 0){
  31. this.lblText.setText("Hallo Welt!");
  32. }else{
  33. this.lblText.setText("Hallo "+name + "!");
  34. }
  35. }
  36. }
  • Zeile 8-10: Für jede Komponente wird eine Attribut angelegt.
  • Zeile 15: Mit this.window kann man auf das Fenster (kommt aus der Klasse App) zugreifen. Hier wird der Title (siehe Bild oben) geändert.
  • 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, ansonsten Hallo gefolgt von dem Textfeldinhalt und dem Ausrufezeichen.
  • de/jltk/gui/example.txt
  • Zuletzt geändert: 2023/12/18 19:35
  • von jltk