笔记记录
编写人:老王
时间:2023-04-4
地点:广州
stage其实就是一个窗口,它啥也不是,打开所有windows的程序都会有一个窗口,这个窗口就是javafx里的stage。里面的内容不属于stage,stage就是一个窗口,就这么简单。
package com.jx.test2;import javafx.application.Application;import javafx.stage.Stage;public class Main extends Application {public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage primaryStage) {//如果你不想用它的primaryStage,也可以自己new一个窗口,如下:Stage stage = new Stage();stage.show();}}
完整的stage代码和各种常见的方法举例:
package javafx.test;import javafx.application.Application;import javafx.beans.value.ChangeListener;import javafx.beans.value.ObservableValue;import javafx.scene.image.Image;import javafx.stage.Stage;public class Main extends Application {public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage primaryStage) {Stage stage = new Stage();//窗口标题stage.setTitle("这是JavaFX窗口的标题");//获取图标,路径记得前面要加file,在项目下新建一个resoures文件,把图片加进去stage.getIcons().add(new Image("file:resources/logo.png"));//设置窗口最小化//stage.setIconified(true);//设置窗口最大化//stage.setMaximized(true);//虚晃一枪,关闭。放在show的下面,显示完后马上关闭,//如果是放在show的前面,那就是先关闭再展示,就体现不出close的效果//stage.close();//设置高和宽,也就是大小stage.setWidth(500);stage.setHeight(300);//设置窗口不能随意拉大拉小,固定窗口大小。默认是truestage.setResizable(true);//可拉伸范围stage.setMaxHeight(600);stage.setMaxWidth(700);stage.setMinHeight(200);stage.setMinWidth(200);//动态监听stage.heightProperty().addListener(new ChangeListener<Number>() {@Overridepublic void changed(ObservableValue<? extends Number> observableValue, Number number, Number t1) {System.out.println("当前的高度为:" + t1.doubleValue());}});stage.widthProperty().addListener(new ChangeListener<Number>() {@Overridepublic void changed(ObservableValue<? extends Number> observableValue, Number number, Number t1) {System.out.println("当前的宽度为:" + t1.doubleValue());}});stage.show();// System.out.println("窗口的高为:"+stage.getHeight());// System.out.println("窗口的宽为:"+stage.getWidth());}}
这里要注意一下,获取窗口的宽和高,如果想要获取默认的宽和高要在show方法的后面去get才能获取,否则会报错。如果是自定义的宽和高则直接在show方法之前获取即可。
stage.show();System.out.println("窗口的高为:"+stage.getHeight());System.out.println("窗口的宽为:"+stage.getWidth());
动态监听高度和宽度,这有助于以后拉伸窗口,里面的组件大小跟随改变的一种技术。
//动态监听stage.heightProperty().addListener(new ChangeListener<Number>() {@Overridepublic void changed(ObservableValue<? extends Number> observableValue, Number number, Number t1) {System.out.println("当前的高度为:" + t1.doubleValue());}});stage.widthProperty().addListener(new ChangeListener<Number>() {@Overridepublic void changed(ObservableValue<? extends Number> observableValue, Number number, Number t1) {System.out.println("当前的宽度为:" + t1.doubleValue());}});

