【发布时间】:2019-12-02 23:46:53
【问题描述】:
这是一个简单的 JavaFX 起点。
DemoApp 继承自 Application。应用程序有一个抽象方法,需要实现。那是@Overriden。
让我困惑的是方法的参数。它有一个类类型和一个名称。对吧?
但是如果没有 = new Stage();" ,如何实例化名称“stage”以创建对象?它只是“Stage stage”而不是“Stage stage = new阶段();”
public class DemoApp extends Application {
@Override
public void start(Stage stage) throws Exception {
}
}
【问题讨论】:
-
当通过
Application#launch启动JavaFX 应用程序时,会发生一系列事件,即documented here(在生命周期 下)。 JavaFX 运行时通过反射实例化指定的应用程序类,然后在适当的时间以适当的顺序调用生命周期方法。这意味着传递给#start(Stage)的Stage是由JavaFX 运行时(即通过内部代码)创建的,然后在调用时传递给方法。