在JavaFX中,Application、Stage、Scene和Parent是用于构建图形用户界面(GUI)的关键组件,它们各自有不同的作用和责任。以下是它们之间的主要区别:
1、Application(应用程序)
Application是JavaFX应用程序的入口点,它是所有JavaFX应用程序的基类。
每个JavaFX应用程序都需要继承自Application类,并重写start方法。
start方法负责初始化应用程序的初始状态,创建主舞台(Stage),以及设置主舞台的场景(Scene)。
public class MyApplication extends Application {@Overridepublic void start(Stage primaryStage) {// 设置初始状态,创建主舞台,设置主场景等}
}
2、Stage(舞台)
Stage是JavaFX应用程序的顶层窗口。
通常,一个JavaFX应用程序至少有一个主舞台,但可以创建额外的舞台作为辅助窗口。
Stage用于表示和控制窗口的属性,例如标题、图标、大小等。
在start方法中,您会创建一个Stage实例,并在其中设置应用程序的初始状态。
@Override
public void start(Stage primaryStage) {primaryStage.setTitle("My JavaFX App");// 设置其他属性
}
3、Scene(场景)
Scene是JavaFX应用程序中的一个可视化场景,包含了所有的用户界面元素。
一个Stage可以包含一个或多个Scene,但在任一时刻,只有一个Scene是活动的。
Scene包含一个根节点(Parent)以及场景的宽度和高度。
在start方法中,您会创建一个Scene实例,并将其设置到Stage中。
@Override
public void start(Stage primaryStage) {Parent root = new VBox(); // 通常是一个布局容器Scene scene = new Scene(root, 800, 600);primaryStage.setScene(scene);
}
4、Parent(父容器)
Parent是一个抽象类,表示了场景图中的节点,通常是布局容器。
Parent的子类(例如VBox、HBox)用于组织和布局UI元素。
Parent包含子节点的集合,用于构建整个用户界面的层次结构。
@Override
public void start(Stage primaryStage) {VBox root = new VBox(); // VBox是Parent的一个子类root.getChildren().add(new Button("Click me"));// 其他布局和UI元素的添加
}
Application是整个应用程序的入口,Stage是顶层窗口的表示,Scene是窗口中的可视场景,而Parent是用于构建用户界面层次结构的抽象容器。在start方法中,这些组件被创建和配置,以便构建应用程序的用户界面。