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

 5.为一个舞台设置左上角小图标:

        //image地址:C:\Users\84701\Desktop\MyJavaFX\src\javafx_Stage\icon.jpg
//        Image image = new Image("javafx_Stage/icon.jpg");//classpath默认在src下

        //image地址:C:\Users\84701\Desktop\MyJavaFX\src\icon.jpg
//        Image image = new Image("icon.jpg");

        Image image = new Image("https://timgsa.baidu.com/" +
                "timg?image&quality=80&size=b9999_10000&sec=" +
                "1542516810850&di=c0d2faf3c19c3e0cca1a75668aa20608&imgtype=" +
                "0&src=http%3A%2F%2Fpic.58pic.com%2F58pic%2F14%2F70%2F20%2F10P58PICF7b_1024.jpg");
        primaryStage.getIcons().add(image);
        primaryStage.show();

 6.show与showAndWiate():

show()方法不会阻塞线程,showAndWait()方法会阻塞线程

 

 

 

 

转载于:https://www.cnblogs.com/yanquebbuyan/p/9970798.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值