JavaFX - Stage论点的重点是什么?

时间:2016-11-19 07:11:28

标签: java javafx scene stage

我正在阅读本教程:https://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htm

它说:

" JavaFX应用程序通过舞台和场景定义用户界面容器。 JavaFX Stage类是顶级JavaFX容器。 JavaFX Scene类是所有内容的容器......"

"在JavaFX中,场景的内容表示为节点的分层场景图。在此示例中,根节点是StackPane对象..."

我不明白舞台对象的意义。如果StackPane是根节点(并且我理解整个树结构的东西),并且如果Scene是所有内容的容器,那么舞台在做什么?为什么不能通过场景做什么?

以下是代码:

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        // TODO Auto-generated method stub
        Button btn = new Button("Say 'Hello World'");
        btn.setOnAction((ActionEvent event) -> System.out.println("Hello World!"));

        StackPane root = new StackPane();
        root.getChildren().add(btn);

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

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

}

1 个答案:

答案 0 :(得分:1)

这基本上是一个关注点。

Stage是用于修改外观,标题,位置等的对象。 windowScene用于布局和处理事件等。

在单独的类中实现功能是一个设计决策,很可能还会受到操作系统和场景提供窗口这一事实的影响,如果工具箱在提供的窗口内完全呈现的话。

但是Scene可以用在用于将JavaFX嵌入其他GUI库的容器中(FXCanvasJFXPanel)。

相关问题