📅  最后修改于: 2023-12-03 15:16:03.714000             🧑  作者: Mango
JavaFX 是一种用于创建丰富和交互式用户界面的 GUI 库。JavaFX 提供了一些 UI 控件,如按钮、文本框、标签、表格等,并且支持事件处理程序。在本文中,我们将探讨如何在 JavaFX 应用程序中将事件处理程序添加到按钮。
在添加事件处理程序之前,需要进行一些准备工作。首先,您需要安装 JavaFX 并设置类路径。其次,您需要创建一个 JavaFX 应用程序。在这个应用程序中,您可以添加按钮并应用样式,以使其看起来更加引人注目。以下是一个简单的 JavaFX 应用程序,其中包含一个按钮:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Click me!");
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
要为按钮添加事件处理程序,您需要使用 setOnAction
方法并将 EventHandler
传递给它。您可以使用 lambda 表达式或内部类创建 EventHandler
。以下是使用 lambda 表达式创建 EventHandler
的示例:
btn.setOnAction(event -> {
System.out.println("Hello, World!");
});
以上代码将在按钮被点击时打印 "Hello, World!"。
以下是使用内部类创建 EventHandler
的示例:
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello, World!");
}
});
以上代码与使用 lambda 表达式的代码是等效的,只是使用的是不同的语法。
下面的代码演示了如何将事件处理程序添加到按钮:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Click me!");
// 使用 lambda 表达式创建 EventHandler
btn.setOnAction(event -> {
System.out.println("Hello, World!");
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在此示例中,我们使用 lambda 表达式创建了 EventHandler
,当按钮被点击时会打印 "Hello, World!"。