我知道如何使鼠标透明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上运行,但是我需要我的代码在所有操作系统上都可以运行。
答案 0 :(得分:0)
我将使用Scene.initStyle(StageStyle.TRANSPARENT);
代替Scene.initStyle(StageStyle.UNDECORATED)
,因为舞台现在没有 TRANSPARENT 那样的东西,但实际上没有任何东西。当您将其设置为 TRANSPARENT 时,表示它在那里,但您只能看不到它。另外,我从未在任何操作系统上遇到任何问题。