package javafx8_hello; import javafx.application.Application; import javafx.event.ActionEvent; //import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * * @web http://java-buddy.blogspot.com/ */ public class JavaFX8_Hello extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Say 'Hello World'"); /* Normal btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); */ /* In Lambda Expression */ btn.setOnAction((ActionEvent event) -> { System.out.println("Hello World!"); }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Thursday, March 13, 2014
Implement event handler using Lambda Expression
The following code replace traditional EventHandler with Lambda Expression in GUI application, JavaFX:
Oh perfect, that's helpful and smooth!
ReplyDeleteFor single function calls it works even shorter: btn.setOnAction((ActionEvent event) -> System.out.println("Hello World!"));