JavaFX(一)入门介绍
最近需要制作一些桌面小工具,因为跨平台的特点,我选择使用JavaFX库
JavaFX介绍
JavaFX 是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公司的共同努力的成果,目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。
中文官方网站:https://openjfx.cn/
JavaFX入门
1 制作第一个窗口
package com.fxUnit01; import javafx.application.Application; import javafx.stage.Stage; /** * @Name FX learning unit 1 * @Description 第一个窗口制作 * @Author Fancy * @return 2022/6/13 * @Version 1.0 */ public class fxTest extends Application{ public static void main(String[] args) { Application.launch(fxTest.class,args); System.out.println("HelloWorld"); } public void start(Stage s) throws Exception{ System.out.println("这是start方法"); //show方法调用窗口 s.show(); s.setTitle("请检单生成器V1.0"); } }
package com.fxUnit02; import javafx.application.Application; import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; import java.io.FileInputStream; /** * @Name FX learning unit 2 * @Description 单个窗口的生命周期、各类属性设置 * @Author Fancy * @return 2022/6/13 * @Version 1.0 */ public class fxTest2 extends Application { public static void main(String[] args) { System.out.println("main方法调用"+Thread.currentThread().getName()); Application.launch(fxTest2.class,args); } public void init() throws Exception{ System.out.println("init方法调用"+Thread.currentThread().getName()); } @Override public void start(Stage primaryStage) throws Exception { //关闭窗口,程序并不退出 Platform.setImplicitExit(false); //stage就是一个窗口 System.out.println("start"+Thread.currentThread().getName()); //设置标题 primaryStage.setTitle("请检单生成器V1.0"); //设置左上角图标 primaryStage.getIcons().add(new Image(new FileInputStream("D:\\整理\\Code_1\\img\\bv_Logo.png"))); //设置最小化 primaryStage.setIconified(true); //设置最大化 primaryStage.setMaximized(true); //设置高度 primaryStage.setHeight(1000); primaryStage.setWidth(1000); /* //设置最大高度、宽度 primaryStage.setMaxHeight(1000); primaryStage.setMaxWidth(1000);*/ //最小高度、宽度 primaryStage.setMinHeight(300); primaryStage.setMinWidth(300); //监听宽和高,观察者模式 primaryStage.heightProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { System.out.println("当前高度"+newValue.doubleValue()); } }); primaryStage.widthProperty().addListener(new ChangeListener<Number>(){ @Override public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { System.out.println("当前宽度"+newValue.doubleValue()); } }); //设置全屏开启 //primaryStage.setFullScreen(true); //在窗口上铺一层桌布 primaryStage.setScene(new Scene(new Group())); //调用show方法显示窗口 primaryStage.show(); //设置透明度 primaryStage.setOpacity(0.8); //窗口一直在上层 primaryStage.setAlwaysOnTop(true); //设置初始坐标 primaryStage.setX(500.0); primaryStage.setY(500.0); } public void stop() throws Exception{ System.out.println("stop"+Thread.currentThread().getName()); } }
代码来源:B站UP:Aimls
https://space.bilibili.com/5096022/channel/collectiondetail?sid=210809