Stage窗口(续)

  • 设置窗口透明度primaryStage.setOpacity(0.5);

  • 设置置顶窗口 primaryStage.setAlwaysOnTop(true);

  • 设置窗口位置

    // 距离屏幕左上角距离
    primaryStage.setX(100);  
    primaryStage.setY(100);
    
  • 监听窗口移动

    primaryStage.xProperty().addListener(new ChangeListener<Number>() {  
        @Override  
        public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {  
            System.out.println("x:" + newValue);  
        }  
    });  
    primaryStage.yProperty().addListener(new ChangeListener<Number>() {  
        @Override  
        public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {  
            System.out.println("y:" + newValue);  
        }  
    });
    
  • 窗口样式

    // 默认样式  
    stage.initStyle(StageStyle.DECORATED);
    // 透明样式  
    stage1.initStyle(StageStyle.TRANSPARENT);
    // 纯白色背景,没有装饰  
    stage2.initStyle(StageStyle.UNDECORATED);
    // 定义具有纯白色背景和用于实用程序窗口的最小平台装饰的Stage样式。
    stage3.initStyle(StageStyle.UTILITY);
    // 用平台装饰定义Stage风格,消除客户区和装饰之间的边界。客户区背景与装饰统一。
    stage4.initStyle(StageStyle.UNIFIED);
    
  • 窗口模态

    // 设置模态窗口,设置后如果该窗口不关闭则不能点击其他窗口
    stage2.initModality(Modality.APPLICATION_MODAL);
    // 设置父窗口
    stage1.initOwner(stage);  
    // 设置模态窗口,该窗口没有关闭前点击stage(即父窗口)窗口无效
    stage1.initModality(Modality.WINDOW_MODAL);