Lambda Expressions und simple Buttonklicks in JavaFX
- Home
- Tutorials
- Java
- Der Ultimative JavaFX 8 GUI Kurs - Dein Weg zu tollen GUIs
- Lambda Expressions und simple Buttonklicks in JavaFX
Dieses Video ist nicht verfügbar
Dieses Video steht nur eingeschriebenen Nutzern zur Verfügung.
Jetzt Kurs kaufen
In diesem Artikel lernst du einen einfacheren Weg mit Buttons zu arbeiten und zwar mit Lambda Expressions und simple Buttonklicks in JavaFX. Dazu hatten wir ja bisher immer den Eventhandler und ActionEvent implementiert, um dann zusätzlich dessen Methoden zu importieren und zu befüllen. Außerdem mussten wir ja noch die setOnAction Methode auf unseren Button anwenden. Das alles geht aber auch viel einfacher und kürzer.
Dazu müssen wir uns jedoch zuerst Lambda Expressions ansehen. Was sind diese überhaupt? Es handelt sich dabei um ein Programmierkonzept, welches es in anderen Programmiersprachen bereits seit einer Weile gibt, das jedoch erst mit Java 8 in Java eingebaut wurde. Es ist also ein relativ neues Feature von Java. Um es verwenden zu können, muss man in Eclipse auf File->Project Structure und dort bei Project language level 8 - Lambdas, type annotations etc. auswählen.
Schauen wir uns mal anhand eines Buttons an, wie wir ihn simplifizieren können. Dazu schauen wir uns zuerst einmal eine weiter Möglichkeit an, wie wir Buttons verwenden können:
button1.setOnAction(new EventHandler(){
@Override
public void handle(ActionEvent arg0) {
System.out.println("button1 wurde geklickt");
}
});
Du siehst, wir verwenden auch hier die setOnAction Methode. Dieses mal, muss die Klasse den Eventhandler jedoch nicht implementieren. Die handle Funktion muss auch nicht irgendwo außerhalb angelegt werden, sondern kann direkt zum Button zugewiesen werden.
Mit lambda lässt sich dieser Code jedoch massiv verkürzen:
button1.setOnAction(e -> System.out.println("button1 wurde geklickt"));
Holy Moly, was ist denn hier passiert? Das ist der gesamte Code? JA. Wir konnten mittels lambda nun 6 Zeilen in eine Packen. Aber warum geht das? Das funktioniert, weil unsere Funktion versteht, dass sie genau eine Sache machen muss. Und zwar Text in der Konsole ausgeben. mit dem e sagen wir, es handelt sich um einen Event und das -> (Arrow Opperator). Unser alles was wir ausführen möchten, tragen wir rechts davon ein. Das mag keine genaue Erklärung sein, wie Lambda funktioniert. Dazu würde ich dir jedoch auf jeden Fall die Dokumentation empfehlen.
Was wenn wir mehrere Sachen ausführen möchten?
Beispiel für Lambda Expressions und simple Buttonklicks in JavaFX
button1.setOnAction(e ->{
fenster.setScene(scene2);
fenster.show();
});
Du siehst also, wir können auch hier beliebig viel Code ausführen. Wir können es hier so extrem vereinfachen. Weil unsere setOnAction Methode ja genau versteht, was sie eigentlich machen soll. Sie soll etwas ausführen, wenn man auf den Button klickt.
Wir können uns somit jede Menge Arbeit sparen, und in Zukunft, wann immer wir mit Buttonklicks arbeiten, die beschrieben Herangehensweise nutzen.

Vorherig
Verwendung mehrerer Scenes in JavaFX
Nächste
Quiz1
Der Ultimative JavaFX 8 GUI Kurs - Dein Weg zu tollen GUIs
-
Hier starten
-
Lektion1.1
-
Lektion1.2
-
-
Grundlagen
-
Lektion2.1
-
Lektion2.2
-
Lektion2.3
-
Lektion2.4
-
Lektion2.5
-
Lektion2.6
-
Lektion2.7
-
-
Vollgas zur eigenen Benutzeroberfläche mit UI Controls
-
Lektion3.1
-
Lektion3.2
-
Lektion3.3
-
Lektion3.4
-
Lektion3.5
-
Lektion3.6
-
Lektion3.7
-
Lektion3.8
-
Lektion3.9
-
Lektion3.10
-
Lektion3.11
-
Lektion3.12
-
Lektion3.13
-
Lektion3.14
-
Lektion3.15
-
Lektion3.16
-
Lektion3.17
-
Lektion3.18
-
Lektion3.19
-
Lektion3.20
-
-
Layouts
-
Lektion4.1
-
Lektion4.2
-
Lektion4.3
-
Lektion4.4
-
Lektion4.5
-
Lektion4.6
-
Lektion4.7
-
-
Shapes
-
Lektion5.1
-
Lektion5.2
-
Lektion5.3
-
Lektion5.4
-
Lektion5.5
-
Lektion5.6
-
Lektion5.7
-
-
Charts
-
Lektion6.1
-
Lektion6.2
-
Lektion6.3
-
Lektion6.4
-
Lektion6.5Scatter Chart in JavaFX
-
-
Events
-
Lektion7.1
-
Lektion7.2
-
Lektion7.3
-
Lektion7.4
-
-
Audio und Video
-
Lektion8.1
-
Lektion8.2
-
Lektion8.3
-
-
SceneBuilder
-
Lektion9.1
-
Lektion9.2
-
Lektion9.3
-
Beliebte Kurse
Spring Boot Webentwicklung - RESTful APIs entwickeln!
Lerne Spring Boot und erstelle RESTful APIs Das beliebteste Java...
29,99€
Die Java 11 Masterclass - Werde zum Profi-Entwickler!
Werde zum Entwickler mit der Java 11 Masterclass! Starte in...
29,99€
Spiele entwickeln mit Unity 3D – Erstelle eigene Games in C# - Starter
Willkommen zum kostenlosen Teil des Kurses: "Spiele entwickeln mit Unity...
Kostenlos