Создание новой прозрачной сцены на событии JavaFX - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь создать новый Stage при нажатии кнопки.

Это работает, но проблема в том, что я бы хотел, чтобы Stage был полностью прозрачным и позволял нам видеть, что находится за экраном.

Код

Dimension Sizescreen = Toolkit.getDefaultToolkit().getScreenSize();

    //Main stage with option menu
    Pane window = new Pane();
    Scene scene = new Scene(window);
    stage.setTitle("Notification Extender");

    //Create the button SetLooker
    Button SetLooker = new Button("Set Looker");
    //Add a Event when pressed
    SetLooker.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent e) {

            //Create a sub-Stage
            Pane subwindow = new Pane();
            Scene subscene = new Scene(subwindow);
            Stage substage = new Stage();
            substage.setTitle("Notification Extender");

            //Set this subStage Transparent
            substage.initStyle(StageStyle.TRANSPARENT);
            subscene.setFill(Color.TRANSPARENT);

            substage.setWidth(Sizescreen.getWidth());
            substage.setHeight(Sizescreen.getHeight());
            substage.setX(0);
            substage.setY(0);

            //Create a a graphique element
            Rectangle redrec = new Rectangle(120,40,50,50);
            redrec.setStroke(Color.RED);
            redrec.setStrokeWidth(2);
            redrec.setFill(Color.TRANSPARENT);

            //Add the graphique element to the sub-stage
            subwindow.getChildren().add(redrec);

            //Show the sub-stage
            substage.setScene(subscene);
            substage.show();

        }
    });

    //Add the button to the main stage
    window.getChildren().add(SetLooker);

    //Show the main stage
    stage.setScene(scene);
    stage.show();

Проблема в том, что когда я нажимаю кнопку, она показывает сцену, но она совсем не прозрачная, она полностью белая.

Я также пытался изменить основной Stage, но я не могу изменить его, как только он будет показан.

1 Ответ

0 голосов
/ 26 июня 2018

Вам также необходимо удалить фон из корня вашей новой сцены:

subwindow.setBackground(null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...