java - 在事件 JavaFX 上创建新的透明阶段

标签 java javafx javafx-8 javafx-2 transparent

我正在尝试在按下按钮时创建一个新的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,但一旦显示就无法更改。

最佳答案

您还需要从新场景的根中删除背景:

subwindow.setBackground(null);

关于java - 在事件 JavaFX 上创建新的透明阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041756/

相关文章:

java - OOP - 一个类(class)如何变成另一个类(class)?

由于 com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged,JavaFx 无法加载@font-face 字体

excel - 在 JavaFx 中嵌入 Excel

java - 使用 Java 实时重定向控制台输出流

java - 如何禁用 sun jvm 的内联优化?

java - 模拟 SecureRandom::nextInt()

javafx - 覆盖元素鼠标监听器 ScalaFx/JavaFx 执行

javafx 在适当的 Controller 类中使用 MainController 或其他 Controller 中的对象

使用 Dreamweaver 的 Java 小程序

注入(inject)到我的 Controller 类的 JavaFx @FXML Pagination 无法修改