Salve nel seguente codice non riesco a capire il funzionamento del fireevent. il System.out stampa in qualunque caso se sono nel bottone 1 o nel bottone 2.
codice:
package keyboardevent1;

import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;

public class KeyBoardEvent1 extends Application {
int counter=0;
    public void start(Stage stage) {
    TilePane box=new TilePane();
    box.setHgap(50);
    final Button b1=new Button("Uno");
    final Button b2=new Button("Ciao");
    box.getChildren().addAll(b1,b2);
    EventHandler<KeyEvent> keyEventHandler =new EventHandler<KeyEvent>() {
        public void handle(KeyEvent keyEvent) {
            if (keyEvent.getCode() == KeyCode.U) {
                //b2.fireEvent(new ActionEvent()); // A COSA SERVE?
                System.out.println(keyEvent.getSource()+" => "+keyEvent.getTarget());
            }
        }
    };
    Scene scene = new Scene(box, 400, 300);
    stage.addEventHandler(KeyEvent.KEY_PRESSED, keyEventHandler);
    stage.setTitle("My JavaFX Application");
    stage.setScene(scene);
    stage.show();
}

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