依据国际惯例,所有语言入门的最好方式自然是"Hello World"。本节中我们将使用一个简单的例子来介绍JavaFX的基本使用和架构。
代码
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class TutorialApplication extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
// 分别获取Java和JavaFX的版本
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
// 创建label标签,用于信息展示
Label l = new Label("Hello, JavaFx " + javafxVersion + ", running on Java " + javaVersion + ".");
// 设置字体大小
l.setFont(Font.font(20));
// 创建布局StackPane
StackPane stackPane = new StackPane();
stackPane.getChildren().add(l);
// 创建场景Scene
Scene scene = new Scene(stackPane, 640, 480);
stage.setScene(scene);
stage.show();
}
}
效果
代码说明
- 从代码中可以看出,类继承实现了
javafx.application.Application
类,此类中定义了JavaFX容器的生命周期,其中start()方法为主要入口,launch()方法主要用于调起start()方法 - start()方法中传入
javafx.stage.Stage
,Stage为JavaFX的最顶层容器,做窗口展示使用。 - Stage中需要设置Scene(场景),Scene为所有内容的容器,主要用来存放各种组件。
- StackPane为布局组件,大小会随着Scene改变。添加子组件时,如果不指定子组件位置,则子组件会在StackPane组件中堆叠存放
以上使用到的组件在后续教程中会进行具体介绍,暂时会使用即可
基础结构介绍
主要包
-
javafx.animation
- 主要用于动画展示,如 填充,淡入淡出,旋转,缩放和平移 -
javafx.application
- 主要负责JavaFX的生命周期,核心类Application,工具类Platformjavafx.application.Application
类中主要方法:-
init()
- JavaFX启动前进行初始化操作(可以用于加载初始动画) -
start()
- JavaFX程序运行主体,所有的逻辑在此方法中执行生效(必须实现) -
stop()
- JavaFX程序结束时进行的操作 -
launch()
- JavaFX程序的入口方法,主要用于调起start()
方法
-
-
javafx.concurrent
- 主要用于并发操作或者任务定时操作 -
javafx.css
- 主要用于添加设置css样式 -
javafx.geometry
- 主要用于2D对象的定义和操作 -
javafx.scene
- 支持场景图的类和接口。 此外,它还提供了子包,如画布,图表,控件,效果,图像,输入,布局,媒体,绘画,形状,文本,转换,Web等。有几个组件支持JavaFX丰富的API -
javafx.stage
- JavaFX的*容器,主要用于窗体展示 -
javafx.event
- 用于传递和处理JavaFX事件的类和接口