【发布时间】:2019-06-05 14:32:10
【问题描述】:
信息: 在 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 中的相同代码将可以工作(您将能够点击)。
【问题讨论】:
-
您能否再解释一下您的意图,并请发帖MCVE,以便您获得更多帮助。你只是想显示一个对话框吗?您可以使用JOptionPane。请以更全面的方式提供您尝试做的更新请同时提供有关
root变量的更新 -
如果你不知道请看这个。如果您不知道,请不要降低投票。 bugs.openjdk.java.net/browse/JDK-8088104
-
我没有否决这个问题,但没有更多信息,很难正确回答您的问题,只是想让您知道这就是我发表评论以帮助您的原因。
-
我正在尝试在 Windows 上做一些非常简单的事情,但在 macOS 上似乎有一个错误。透明度的工作方式不同。我发现了很多关于这个的未回答的问题。我只想在我的屏幕上显示一个按钮,当我将鼠标悬停在它上面时,会出现一个视图。我通常用 setVisible(false) AnchorPane 做一个透明背景。即使没有可见性,我仍然可以点击它。 Windows 上的相同代码不会这样做。
-
两件事。 (1) 一个适当的minimal reproducible example,人们可以复制粘贴并按原样运行 将改善您的问题。 (2) 你确定macOS支持你想要的功能吗?
标签: java macos user-interface javafx java-8