在macOS上单击透明舞台的问题

时间:2019-01-10 16:55:25

标签: java macos user-interface javafx java-8

信息: 在macOS Mojave上运行的Java 8x64

问题: 无法在javafx舞台上单击透明背景。

代码:

VBox root = new VBox();
AnchorPane background = new AnchorPane();
background.setPrefSize(400, 400);
background.setMinSize(400, 400);
background.setMaxSize(400, 400);
background.setClip(new 
javafx.scene.shape.Rectangle(400,400));
root.getChildren().add(background);

Scene scene = new Scene(root);
Stage stage = new Stage();
scene.setFill(javafx.scene.paint.Color.TRANSPARENT);
stage.setScene(scene);
stage.setAlwaysOnTop(true); //remove on java7
stage.initStyle(StageStyle.TRANSPARENT);
stage.show();

这只是显示给您的测试代码,您将无法点击不可见的视图。 Windows上的Java 7x86中的相同代码将起作用(您将可以单击)。

2 个答案:

答案 0 :(得分:0)

如果您使用的是Javafx,可能值得使用常规阶段而不是jfxpane。您可以使用以下方法创建透明舞台:

Stage s = new Stage(StageStyle.TRANSPARENT);

答案 1 :(得分:0)

编辑:您所描述的问题显然是一个低级错误。我认为SO上没有任何人可以解决此问题。

也许您正在寻找的是hash table 将其设置为true将导致该节点不接收任何鼠标事件。 无论您的组件是否可见,它都可以工作。