📜  JavaFX应用程序结构(1)

📅  最后修改于: 2023-12-03 15:01:36.558000             🧑  作者: Mango

JavaFX应用程序结构

JavaFX是用于构建丰富的、交互式的图形用户界面(GUI)的框架。在JavaFX应用程序中,主类是Application类,它负责启动应用程序并呈现初始场景。JavaFX应用程序的结构通常包括以下组件:

1. Application类

Application类是JavaFX应用程序的必要组件,它负责启动应用程序并呈现初始场景。Application类需要继承javafx.application.Application类,并实现start方法。start方法被用于初始化场景和场景图:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class MyApplication extends Application {
  public void start(Stage primaryStage) {
    Text text = new Text("Hello World!");
    StackPane root = new StackPane(text);
    Scene scene = new Scene(root, 300, 250);
    primaryStage.setScene(scene);
    primaryStage.setTitle("My Application");
    primaryStage.show();
  }

  public static void main(String[] args) {
    launch(args);
  }
}

在上面的代码中,我们创建了一个MyApplication类,它继承了javafx.application.Application类,并实现了start方法。在start方法中,我们创建了一个文本对象Text,用于显示“Hello World!”,然后创建了一个StackPane对象,用于布局Text对象。最后,我们将StackPane对象添加到场景中,并设置场景的大小。我们还设置了主舞台的标题,调用了show方法来展示场景。

2. Scene类

Scene类表示应用程序的一个UI场景。它可以被添加到Stage对象中,以显示应用程序的内容。一个Scene对象包含了对应场景的根节点(root node)和场景的高度和宽度。一个根节点是一个Scene图形对象的顶级元素,可以是一些其他的图形对象或是一个布局容器。

StackPane root = new StackPane(text);
Scene scene = new Scene(root, 300, 250);

在上面的代码中,我们创建了一个StackPane对象作为场景的根节点,然后创建了一个场景对象,并将StackPane对象作为构造函数的第一个参数,将场景的宽度和高度分别设置为300和250。

3. Stage类

一个Stage对象表示JavaFX应用程序的顶级窗口。它包括了应用程序各个组件的位置和大小。Stage对象是由JavaFX系统创建的,不能够通过实例化一个自定义类来创建。

primaryStage.setScene(scene);
primaryStage.setTitle("My Application");
primaryStage.show();

在上面的代码中,我们将之前创建的Scene对象设置为主舞台的场景,设置了主舞台的标题,并调用了show方法来展示场景。

4. Node类

Node类是JavaFX中所有节点的抽象基类。节点是指任何可见的图形对象,例如,文本、矩形、圆形和图像等。Node类提供了设置节点的坐标、宽度、高度、属性和样式等方法。

Text text = new Text("Hello World!");
StackPane root = new StackPane(text);

在上面的代码中,我们创建了一个文本对象Text,然后将其添加到StackPane对象中。

5. Layout类

JavaFX中提供了许多不同的布局容器(Layout),用于定位和排列节点,例如,VBox、HBox、GridPane和BorderPane等。布局容器可以包含其他节点和其他布局容器。

StackPane root = new StackPane(text);

在上面的代码中,我们创建了一个StackPane对象作为场景的根节点,并将文本对象Text添加到其中。

以上是JavaFX应用程序中常用组件的介绍。在实际开发中,还可以结合CSS来为应用程序添加更多的样式和效果。