如何在JavaFX 8中使鼠标透明化?

时间:2019-04-18 14:00:17

标签: javafx window mouseevent

我知道如何使鼠标透明Node。但是我想在颜色和鼠标事件中创建透明窗口,以便光标可以通过该窗口并单击其下方的应用程序。

这是最少的代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class MouseTransparentWindow extends Application {

    @Override
    public void start(Stage primaryStage) {

        StackPane stackPane = new StackPane();
        stackPane.setStyle("-fx-background-color: rgba(192,192,192,0.2);" +
                "-fx-border-width: 1px;-fx-border-color: #1d1d1d");
        stackPane.setMouseTransparent(true);

        Scene scene = new Scene(stackPane, 400, 250, Color.TRANSPARENT);
        scene.setFill(null);
        primaryStage.setScene(scene);
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.show();
    }
}

似乎可以在Windows上运行,但是我需要我的代码在所有操作系统上都可以运行。

1 个答案:

答案 0 :(得分:0)

我将使用Scene.initStyle(StageStyle.TRANSPARENT);代替Scene.initStyle(StageStyle.UNDECORATED),因为舞台现在没有 TRANSPARENT 那样的东西,但实际上没有任何东西。当您将其设置为 TRANSPARENT 时,表示它在那里,但您只能看不到它。另外,我从未在任何操作系统上遇到任何问题。

相关问题