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);