Проблема с кликом по прозрачной сцене на macOS - PullRequest
0 голосов
/ 10 января 2019

Информация: Java 8x64 работает на macOS Mojave

Проблема: Невозможно щелкнуть по прозрачному фону на стадии 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();

Это просто тестовый код, чтобы показать вам, вы не сможете просмотреть это представление, которое не отображается. Тот же код в Java 7x86 на Windows будет работать (вы сможете нажать через).

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Редактировать : Проблема, которую вы описываете, явно является ошибкой низкого уровня. Я не думаю, что у кого-то на SO найдется обходной путь.

Возможно, вы ищете mouseTransparentProperty Установка его в true приведет к тому, что узел не получит никаких событий мыши. Он работает независимо от того, виден ли ваш компонент.

0 голосов
/ 14 января 2019

если вы используете javafx, возможно, стоит использовать обычный этап вместо jfxpane. Вы можете создать прозрачную сцену, используя:

Stage s = new Stage(StageStyle.TRANSPARENT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...