Stage类型
public class 窗体类型 extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Stage s1=new Stage();
s1.setTitle("s1");
s1.initStyle(StageStyle.DECORATED);//默认形式,有最大最小按钮等
s1.show();
Stage s2=new Stage();
s2.setTitle("s2");
s2.initStyle(StageStyle.TRANSPARENT);//透明窗体
s2.show();
Stage s3=new Stage();
s3.setTitle("s3");
s3.initStyle(StageStyle.UNDECORATED);//白色窗体,效果上和透明窗体几乎无区别
s3.show();
Stage s4=new Stage();
s4.setTitle("s4");
s4.initStyle(StageStyle.UNIFIED);//有最大最小等按钮,但是标题栏装饰没有了
s4.show();
Stage s5=new Stage();
s5.setTitle("s5");
s5.initStyle(StageStyle.UTILITY);//只有关闭按钮,有标题栏装饰
s5.show();
//关闭所有窗体
Platform.exit();
}
public static void main(String[] args) {
launch(args);
}
}
模态框
应用模态框
public class 模态化窗体一 extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Stage s1=new Stage();
s1.setTitle("s1");
Stage s2=new Stage();
s2.setTitle("s2");
//设置应用模态,则归属于一个应用的模态框不关闭的情况下,其他窗体无法操作
s2.initModality(Modality.APPLICATION_MODAL);
s1.show();
s2.show();
}
public static void main(String[] args) {
launch(args);
}
}

windows模态框
public class 模态化窗体二 extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Stage s1=new Stage();
s1.setTitle("s1");
Stage s2=new Stage();
s2.setTitle("s2");
//windows模态则不会阻止其他窗体操作,因为顾名思义针对系统的,所以需要绑定窗体关系
s2.initModality(Modality.WINDOW_MODAL);
//告知:s2的拥有着是s1
s2.initOwner(s1);
s1.show();
s2.show();
}
public static void main(String[] args) {
launch(args);
}
}
Platform的使用
public class Platform类的使用 extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println("start的线程 ="+Thread.currentThread().getName()); //JavaFX Application Thread
//虽然是回调,而且最后执行,但是内部线程也是UI线程,作用是,线程空闲时候,更新UI,但是仍不可做频繁大量的UI更新
Platform.runLater(() -> {
System.out.println("run的线程 ="+Thread.currentThread().getName());//JavaFX Application Thread
});
//会先于runLater回调执行
System.out.println("执行");
//该方法设置flase,则即使关闭窗体,程序也没结束
Platform.setImplicitExit(false);
primaryStage.show();
//检测系统是否支持3D,当然还有其他检测不再赘述
System.out.println(Platform.isSupported(ConditionalFeature.SCENE3D));//true
//关闭程序,这样才能彻底关闭程序
Platform.exit();
}
public static void main(String[] args) {
launch(args);
}
}