笔记记录

编写人:老王
时间:2023-04-3
地点:广州


设置窗口的透明度

  1. package javafx.test;
  2. import javafx.application.Application;
  3. import javafx.stage.Stage;
  4. public class Main2 extends Application {
  5. public static void main(String[] args) {
  6. launch(args);
  7. }
  8. @Override
  9. public void start(Stage stage) throws Exception {
  10. //值从0-1,1是不透明
  11. stage.setOpacity(0.89);
  12. stage.show();
  13. }
  14. }

可以随意设置窗口透明度,非常nice的一个功能,非常高级。图片.png

  1. //窗口永远在前面,不会消失,这个功能也不错
  2. stage.setAlwaysOnTop(true);

设置窗口的位置,左上角的坐标xy:

  1. stage.setX(600);
  2. stage.setY(200);

stage模式(5种样式)

窗口的样式一共有5种,效果代码如下:

  1. package javafx.test;
  2. import javafx.application.Application;
  3. import javafx.stage.Stage;
  4. import javafx.stage.StageStyle;
  5. public class Main2 extends Application {
  6. public static void main(String[] args) {
  7. launch(args);
  8. }
  9. @Override
  10. public void start(Stage stage) throws Exception {
  11. Stage stage1 = new Stage();
  12. stage1.setTitle("S1窗口");
  13. //默认的窗口样式
  14. stage1.initStyle(StageStyle.DECORATED);
  15. stage1.show();
  16. Stage stage2 = new Stage();
  17. stage2.setTitle("S2窗口");
  18. //透明的窗口
  19. stage2.initStyle(StageStyle.TRANSPARENT);
  20. stage2.show();
  21. Stage stage3 = new Stage();
  22. stage3.setTitle("S3窗口");
  23. //白色的窗口,实际上它就是透明的
  24. stage3.initStyle(StageStyle.UNDECORATED);
  25. stage3.show();
  26. Stage stage4 = new Stage();
  27. stage4.setTitle("S4窗口");
  28. //没什么区别,和第一个没太大区别
  29. stage4.initStyle(StageStyle.UNIFIED);
  30. stage4.show();
  31. Stage stage5 = new Stage();
  32. stage5.setTitle("S5窗口");
  33. //没有最大化最小化,就是一个单纯的窗口
  34. stage5.initStyle(StageStyle.UTILITY);
  35. stage5.show();
  36. }
  37. }

全部退出,完全退出功能。

//全部推出,包括程序和虚拟机
        Platform.exit();

模态化窗口

什么叫模态化窗口,模态化窗口就是你不关闭当前的窗口你就不能去点击其他的页面或者其他窗口进行操作。
例如这个:
图片.png我只要不关掉这个Settings窗口,那么我就无法进行其他的操作,这个就叫做模态化窗口

package javafx.test;

import javafx.application.Application;
import javafx.stage.Modality;
import javafx.stage.Stage;

public class Main3 extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Stage s1 = new Stage();
        s1.setTitle("s1");
        s1.show();

        Stage s2 = new Stage();
        s2.setTitle("s2");
        s2.show();

        Stage s3 = new Stage();
        //这个模块什么都可以点
       // s3.initModality(Modality.WINDOW_MODAL);
        //这个模块就是模态化,就只能操作s3,
        //其他两个窗口就操作不了,会出现windows的报错提示音
        s3.initModality(Modality.APPLICATION_MODAL);
        s3.setTitle("s3");
        s3.show();
    }
}

只能操作s3了。图片.png