HelloWorld
public class Main extends Application {
//启动
@Override
public void start(Stage primaryStage) throws Exception{
System.out.println("start = "+Thread.currentThread().getName()); //start = JavaFX Application Thread
//显示窗体
primaryStage.show();
}
public static void main(String[] args) {
System.out.println("main = "+Thread.currentThread().getName()); //main = main
launch(args);
}
}
生命周期
- init: 初始化
- start: 启动
- stop: 停止
public class Main extends Application {
//初始化
@Override
public void init() throws Exception {
super.init();
System.out.println("init = "+Thread.currentThread().getName());//init = JavaFX-Launcher
}
//启动
@Override
public void start(Stage primaryStage) throws Exception{
System.out.println("start = "+Thread.currentThread().getName()); //start = JavaFX Application Thread
//显示窗体
primaryStage.show();
}
//停止
@Override
public void stop() throws Exception {
super.stop();
System.out.println("stop = "+Thread.currentThread().getName()); //stop = JavaFX Application Thread(UI线程)
}
public static void main(String[] args) {
System.out.println("main = "+Thread.currentThread().getName()); //main = main
launch(args);
}
}
窗体层级关系

Stage相关
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
//设置标题信息
primaryStage.setTitle("Hello World");
//设置左上角小图标
primaryStage.getIcons().add(new Image("/icon/icon.jpg"));
//设置最小化
// primaryStage.setIconified(true);
//设置最大化,不是全屏
// primaryStage.setMaximized(true);
//关闭窗体
// primaryStage.close();
//设置屏幕宽高
primaryStage.setScene(new Scene(root, 300, 275));
//下面两行和上面一行等效
// primaryStage.setWidth(500);
// primaryStage.setHeight(500);
//设置固定大小,禁止拉伸窗体
// primaryStage.setResizable(false);
//设置最大最小宽高
// primaryStage.setMaxHeight(600);
// primaryStage.setMaxHeight(600);
//获取宽高,但是如果没有设置宽高使用默认高宽,则必须在show()执行之后获取
// primaryStage.getWidth();
// primaryStage.getHeight();
//设置宽高变化的监听回调,多用于适配
primaryStage.heightProperty().addListener((observable, oldValue, newValue) -> {
});
//设置全屏,必须搭配setScene使用,否则无效
// primaryStage.setFullScreen(true);
//设置透明度(值0-1)
// primaryStage.setOpacity(0.5);//半透明
//设置窗口永远在最上层
// primaryStage.setAlwaysOnTop(true);
//设置窗体初始所在位置,以左上角为坐标原点,和android手机坐标一致
// primaryStage.setX(100);
// primaryStage.setY(100);
//窗体坐标监听器
primaryStage.xProperty().addListener((observable, oldValue, newValue) -> {
});
//显示窗体
primaryStage.show();
}
public static void main(String[] args) {
System.out.println("main = "+Thread.currentThread().getName()); //main = main
launch(args);
}
}