Ajuda Evento OnAction Resolvido

Estou aprendendo JavaFX e deu um problema no evento de clicar no botão. Normalmente eu uso tratando o evento em uma classe anonima(não sei se é esse o nome) que ta mostrando no ‘btn2’, só que no site onde eu estou aprendendo tem mostra outros meios de tratar o um evento que e por uma classe externa(btn1) e dentro da própria classe(btn3).
Mas esta ocorrendo um erro e não esta executando por causa q ta falando q ta errado algumas linhas, só que a maneira que o NetBeans sugere para corrigir o erro é usando a classe Event e não o ActionEvent e eu teste com o Event e conseguiu executar mas quando clica não mostra a mensagem q era pra mostrar.
Código abaixo:
//classe principal

package javafx05;

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.VBox;
import javafx.stage.Stage;

public class JavaFX05 extends Application implements EventHandler{

@Override
public void start(Stage Janela) {
    VBox raiz =  new VBox(10);
    
    Button btn1 = new Button("Classe Externa");
    Button btn2 = new Button("Classe anonima");
    Button btn3 = new Button("Dentro classe Pai");
    
    btn1.setOnAction(new TratarEventos());
    btn2.setOnAction(new EventHandler(){
        @Override
        public void handle(ActionEvent event) {
            System.out.println("Chamou em uma Classe Anônima");
        }
    });
    btn3.setOnAction(this);
    
    raiz.getChildren().addAll(btn1,btn2,btn3);
    Scene cena = new Scene(raiz,300,300);
    Janela.setTitle("Tratando Eventos");
    Janela.setScene(cena);
    Janela.show();
    
}

public static void main(String[] args) {
    launch(args);
}

@Override
public void handle(ActionEvent event) {
    System.out.println("Chamou dentro da classe Pai JavaFX05!");
}

}
------------------//Arquivo com a classe externa ta assim//--------------------

package javafx05;

import javafx.event.ActionEvent;
import javafx.event.EventHandler;

public class TratarEventos implements EventHandler{

@Override
public void handle(ActionEvent event) {
    System.out.println("Chamou em classe externa");
}

}

A classe é Event mesmo e não ActionEvent
No caso do btn2 tem um jeito mais fácil usando lambda(Pesquise sobre isso caso não entenda o exemplo).

import javafx.event.*;
...
...
...
btn2.setOnAction(e -> {
     System.out.println("Chamou em uma Classe Anônima");
     ...
     ...
     ...
});

Vlw, testei com o Event e deu certo devo ter esquecido alguma coisa antes pq não tava aparecendo a mensagem do sout.
Vou dar uma pesquisada nesse lambda parece + fácil mesmo.
Umas curiosidades se não se usa o ActionEvent no botão ele vai ser usado em mais algum controlador?
O site que estou olhando e um pouco antigo de 2012 essa mudança veio com alguma atualização?
Se possível gostaria que me recomendasse algum material para estudar JavaFX e esta realmente bem difícil encontrar na internet.

Infelizmente não sei dizer sobre o ActionEvent visto que nunca utilizei.
Com relação a “material”, o melhor lugar para estudar é a própria documentação disponibilizada pela oracle, mas se vc não gosta de ler(igual a mim kkk) e se souber inglês, tem um canal no youtube com uma playlist muito boa, foi com ela que eu comecei a aprender javafx(antes eu usava swing).
o nome é thenewboston
vai te dar uma base boa pra quando for pesquisar alguma coisa já ter a base suficiente para entender corretamente

Vlw vou dar uma olhada nessa playlist