Ventana transparente JavaFx: sí, por favor. Ratón transparente: no, gracias

Me gustaría crear una clase JavaFx simple que muestre al usuario un rectángulo translúcido (digamos una transparencia arbitraria del 50%) que cubra la pantalla del usuario. Simplemente debería permitirme obtener el evento Point of a mouse click. Esto suena trivial, pero cuando creo ventanas transparentes siempre parecen ser transparentes a los eventos del mouse en lugar de solo mi requisito de visibilidad semitransparente. El evento del mouse nunca se activa.

He usado setMouseTransparent (false) en el rectángulo y el panel raíz, pero esto no hace ninguna diferencia. Estaría realmente agradecido si alguien pudiera indicar algún error / concepto erróneo.

Aquí está la clase de prueba trivial que he creado:

public class ClickScreen implements MouseListener {

    private ClickScreenListener listener;
    private Stage window;
    private Point point;

    public ClickScreen(ClickScreenListener listener) {

        // Get screen size
        Rectangle2D r = Screen.getPrimary().getBounds();

        // Something to put stuff in
        StackPane root = new StackPane();

        // Translucent rectangle on the pane
        Rectangle rectangle = new Rectangle(r.getWidth(), r.getHeight());
        rectangle.setFill(Color.rgb(183, 183, 183, 0.5));
        root.getChildren().add(rectangle);

        Scene scene = new Scene(root, r.getWidth(), r.getHeight());
        scene.setFill(null);

        window = new Stage();
        window.initStyle(StageStyle.TRANSPARENT);
        window.setTitle("Click drop location");
        window.setScene(scene);

        this.listener = listener;

    }

    public Point getLocation(){
        return point;
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        point = e.getLocationOnScreen();
        listener.screenClicked(point);
    }
}

Editar: ¡Un ejemplo más simple del problema de transparencia que estoy experimentando es este Hello World! ejemplo. Cuando paso el mouse sobre el botón, es aproximadamente 50:50 la posibilidad de hacer clic en el botón o simplemente hacer clic en "a través" y enfocar la ventana subyacente (que generalmente es un eclipse en mi caso). Me encantaría tus pensamientos sobre esto.

    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);

        Scene scene = new Scene(root, 300, 250);
        scene.setFill(null);

        primaryStage.setScene(scene);
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.show();
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta