如何在 Java 中使用 lambda 實現 JavaFX 事件處理?\n
JavaFX Button 類提供了 setOnAction() 方法,可用於為按鈕單擊事件設定操作。EventHandler 是一個函式介面,僅有一個方法,即 handle() 方法。
語法
@FunctionalInterface public interface EventHandler<T extends Event> extends EventListener
在以下示例中,我們可以使用 lambda 表示式實現 JavaFX 的事件處理。
例項
import javafx.application.*;
import javafx.beans.property.*;
import javafx.event.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.*;
public class LambdaWithJavaFxTest extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception {
BorderPane root = new BorderPane();
ToggleButton button = new ToggleButton("Click");
final StringProperty btnText = button.textProperty();
button.setOnAction((event) -> { // lambda expression
ToggleButton source = (ToggleButton) event.getSource();
if(source.isSelected()) {
btnText.set("Clicked!");
} else {
btnText.set("Click!");
}
});
root.setCenter(button);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setWidth(300);
stage.setHeight(250);
stage.show();
}
}輸出
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP