信息: 在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中的相同代码将起作用(您将可以单击)。
答案 0 :(得分:0)
如果您使用的是Javafx,可能值得使用常规阶段而不是jfxpane。您可以使用以下方法创建透明舞台:
Stage s = new Stage(StageStyle.TRANSPARENT);
答案 1 :(得分:0)
编辑:您所描述的问题显然是一个低级错误。我认为SO上没有任何人可以解决此问题。
也许您正在寻找的是hash table 将其设置为true将导致该节点不接收任何鼠标事件。 无论您的组件是否可见,它都可以工作。