了解匿名类并从 Oracle 获得。我希望有人可以告诉我如果我不使用匿名类会是什么样子。我将如何在新课程中做到这一点?
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;
public class HelloWorld extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
在此示例中,方法调用 btn.setOnAction 指定当您选择 Say 'Hello World' 按钮时会发生什么。此方法需要 EventHandler 类型的对象。EventHandler 接口只包含一个方法,handle。该示例没有使用新类实现此方法,而是使用匿名类表达式。请注意,此表达式是传递给 btn.setOnAction 方法的参数。
来源:http ://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html