JavaFX-Stage

1.Stage类继承自Window类,继承了Window类的show()方法,Stage的close()方法实际上是调用了继承自Window类的hide()方法。另外还有Window的setOpacity()方法可对Stage设置透明度。

2.Stage样式的设置

 1         Stage stage = new Stage(StageStyle.DECORATED);//并没有什么不同  默认属性
 2         Stage stage = new Stage(StageStyle.TRANSPARENT);//舞台透明
 3         Stage stage = new Stage(StageStyle.UNDECORATED);//依然是透明,但和上面的透明略有不同
 4         Stage stage = new Stage(StageStyle.UNIFIED);//没有聚焦时的边缘颜色
 5         Stage stage = new Stage(StageStyle.UTILITY);//没有最大最小化按钮
 6 
 7 
 8         //也可以这样设置:
 9         //Stage stage = new Stage();
10         //stage.initStyle(StageStyle.DECORATED);

3.Stage模态设置:Stage模态有两个属性:Modality.WINDOW_MODAL和Modality.APPLICATION_MODAL

Modality.APPLICATION_MODAL:设置该模态的Stage出现在窗体最顶部时会阻塞其它窗体的显

            Stage stage2 = new Stage();
            stage2.setTitle("这是第二个舞台");
   
            Stage stage3 = new Stage();
            stage3.setTitle("这是第三个舞台");
    
            Stage stage4 = new Stage();
            stage4.setTitle("这是第四个舞台");
            stage4..initModality(Modality.APPLICATION_MODAL);
            
           stage2.show();
           stage3.show();
           stage4.show();//注意:只有当stage4出现在其他页面之上时才会有效果
/*
           stage4.show();
           stage2.show();
           stage3.show();//这样是无效果的
*/

Modality.WINDOW_MODAL:设置为该模态的stage只会阻塞它的所有者窗口(通过initowner()设置),但前提依然是该窗口出现时在它的所有者窗口之上

 1            Stage stage2 = new Stage();
 2            stage2.setTitle("这是第二个舞台");
 3    
 4             Stage stage3 = new Stage();
 5             stage3.setTitle("这是第三个舞台");
 6     
 7             Stage stage4 = new Stage();
 8             stage4.setTitle("这是第四个舞台");
 9             stage4.initOwner(stage2);
10            stage4..initModality(Modality.WINDOW_MODAL);
11   
12            stage2.show();
13            stage3.show();
14            stage4.show();//同样stage4要出现在stage2上面才会出现效果

 注意:start()方法传入的Stage(primarStage)不可设置模态属性,否则会出现异常

4. 其他的一些设置:

           primaryStage.setAlwaysOnTop(true);//设置舞台不被其它舞台覆盖
//        primaryStage.setResizable(false);//设置舞台是否可被拉伸
//        primaryStage.setFullScreen(true);//设置舞台为全屏模式,只有当舞台中设置Scene才会出现效果
//        primaryStage.setFullScreenExitHint("Hello");//设置舞台进入全屏模式是的提示,默认为按ESC键退出全屏
//        primaryStage.setFullScreenExitKeyCombination(KeyCombination.keyCombination("Control"));
        //设置全屏退出的按键方式,String可以是某个英文字母键或者F1等键
        //调用KeyCombination的No-Math时这没有任何按键可以退出全屏,不知如何退出的话可以按window+D键返回桌面
//其它平台返回桌面的方式自行百度
// primaryStage.setFullScreenExitKeyCombination(KeyCombination.valueOf("c")); //等同于上面的keyCombination("Control")方法 // primaryStage.setIconified(true);//设置舞台最小化 // primaryStage.setMaximized(true);//设置最大化 // primaryStage.setOpacity(0.5);//设置透明度Window方法 // primaryStage.setX(100);//设置舞台在屏幕上的位置 // primaryStage.setY(100);
 

猜你喜欢

转载自www.cnblogs.com/yanquebbuyan/p/9970798.html