java可视化桌面级应用开发库JavaFX 面板Stage入门教程学习笔记

文章目录

  • 请使用jdk8到jdk10版本,更高版本需手动导入库
  • 创建JavaFX类
  • JavaFX窗口的生命周期:
  • 面板Stage基础操作:
  • 面板Stage进阶操作:
  • 窗口的五种模式
  • 监听器的入门
  • 模态化窗口:

请使用jdk8到jdk10版本,更高版本需手动导入库

创建JavaFX类

确保Application类是属于JavaFX包下

public class Main extends Application {
    public static void main(String[] args) {
        launch(args);//args来源于main()方法里自动生成的args,不可改动
    }
    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.show();
    }
}

JavaFX窗口的生命周期:

@Override
public void init() throws Exception {
    //初始化阶段
}
@Override
public void start(Stage primaryStage) throws Exception {
    //执行阶段
    //绝大部分执行代码都写在这里
}
@Override
public void stop() throws Exception {
    //结束阶段
    //窗口关闭时执行
}

面板Stage基础操作:

primaryStage对象是来自start()方法里的一个Stage对象。

primaryStage.getIcons().add(new Image("路径"));  //改变图标
primaryStage.setX(1500);  //设置初始x轴位置(窗口的左上角位置)
primaryStage.setY(200);   //设置初始y轴位置(窗口的左上角位置)
primaryStage.setHeight(500); //设置窗口高度
primaryStage.setWidth(100);  //设置窗口宽度
primaryStage.setMaxHeight(800);  //设置窗口最大高度
primaryStage.setMaxWidth(800);   //设置窗口最大宽度
primaryStage.setMinHeight(300);   //设置窗口最小高度
primaryStage.setMinWidth(300);    //设置窗口最小宽度
primaryStage.show();   //窗口显示  结尾不加上show()的话窗口不会显示
primaryStage.close();  //窗口关闭
//======================================================
primaryStage.getX();  //获取当前x轴坐标(窗口的左上角位置)
primaryStage.getY();  //获取当前y轴坐标(窗口的左上角位置)
primaryStage.getHeight();  //获取当前窗口高度(double)
primaryStage.getWidth();  //获取当前窗口宽度(double)
primaryStage.getMaxHeight();  //获取窗口最大高度(double)
primaryStage.getMaxWidth();  //获取窗口最大宽度(double)
primaryStage.getMinHeight();  //获取窗口最小高度(double)
primaryStage.getMinWidth();  //获取窗口最小宽度(double)

面板Stage进阶操作:

primaryStage.setTitle("hello world"); //设置窗口表题

primaryStage.getIcons().add(new Image("路径"));//设置窗口的图标和最小化图标

primaryStage.setMaximized(true); //设置窗口是否最大化  T最大化  F不最大化

primaryStage.setAlwaysOnTop(false); //设置窗口是否总是显示在最前端 T是  F否

primaryStage.setIconified(true); //设置窗口是否最小化   T最小化  F不最小化

primaryStage.setResizable(true); //设置窗口是否可以变化大小 T可以  F不可以

primaryStage.setOpacity(1); //透明度。最小值0完全透明,最大值1完全不透明

窗口的五种模式

primaryStage.initStyle(StageStyle.DECORATED);  //普通模式
primaryStage.initStyle(StageStyle.TRANSPARENT);//透明模式
primaryStage.initStyle(StageStyle.UNDECORATED);   //透明模式2     
primaryStage.initStyle(StageStyle.UNIFIED);   //主题色模式(与Windows主题一致)
primaryStage.initStyle(StageStyle.UTILITY);   //通知框模式      

监听器的入门

快速记忆:
Stage.***Property().addListener(new ChangeListener敲回车

//高度变化监听器,高度发生变化时执行大括号内的代码
primaryStage.heightProperty().addListener(new ChangeListener<Number>() {
      @Override
      public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
          //可用参数↓       
          //oldValue 监听到动作之前的旧数据
          //newValue 监听到动作之前的新数据
      }
});
//x轴移动监听器,x轴坐标发生变化时执行大括号内代码
 primaryStage.xProperty().addListener(new ChangeListener<Number>() {
       @Override
       public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
          //可用参数↓ 
          //oldValue 监听到动作之前的旧数据
          //newValue 监听到动作之前的新数据
       }
});

模态化窗口:

模态类型窗口:就是指除非采取有效的关闭手段,用户鼠标点或者输入光标一直停留在其上的窗口

//新建两个窗口↓
Stage s1=new Stage();
Stage s2=new Stage();
//将2号窗口附属于1号窗口↓(1号窗口是2号窗口的拥有者)
s2.initOwner(s1);
//2号窗口被设置为闪烁效果
s2.initModality(Modality.WINDOW_MODAL);

你可能感兴趣的:(java)