javaFX启动方式

先显示一个框框再说

最小模型

先给一个最短的JavaFX程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import javafx.application.*;
import javafx.stage.Stage;

/**
* FX学习No1
* @author 00
*
*/
public class Demo1 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
//设置标题
primaryStage.setTitle("this is FX windows");
//展示窗口
primaryStage.show();
}
}

这个最短的程序有以下关键点:
- 必须继承Application类或者子类
- 继承Application类或者子类的类必须实现start(Stage primaryStage)方法
- main()方法调用launch()方法启动java窗口
以上就是javaFX的第一次实现方法

其它实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Demo1  {

public static void main(String[] args) {
System.out.println("main="+Thread.currentThread().getName());
Lauch.launch(Lauch.class, args);
}
}

//----------------------------------------------------------------------------------
import javafx.application.Application;
import javafx.stage.Stage;

public class Lauch extends Application {

public void init() {
System.out.println("init() = "+Thread.currentThread().getName());
}

@Override
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
primaryStage.show();
System.out.println("start() = "+Thread.currentThread().getName());
}

public void stop() {
System.out.println("stop() = "+Thread.currentThread().getName());
}
}

控制台打印数据如下:

1
2
3
4
main() = main
init() = JavaFX-Launcher
start() = JavaFX Application Thread
stop() = JavaFX Application Thread

由控制台可以看出方法的执行顺序为主线程“(main)”执行main方法,lauch方法被调用后首先创建“JavaFX-Launcher”线程执行init方法,然后创建“JavaFX Application Thread”线程执行start方法,当关闭窗口时“JavaFX Application Thread”线程调用stop方法。