您的位置首页  日常用品  装饰

JavaFX教程——Stage

  当JavaFX应用程序启动时,它会创建一个根Stage对象,并将其传递给JavaFX应用程序根类的start(Stage primaryStage)方法。此Stage对象表示JavaFX应用程序的主窗口。如果应用程序需要打开更多窗口,可以在应用程序生命周期的后期创建新的阶段对象。

  您可以像创建任何其他Java对象一样创建JavaFX Stage对象:使用new命令和Stage构造函数。下面是一个创建JavaFXStage对象的示例。

  简单地创建JavaFX Stage对象不会显示它。为了使Stage可见,必须调用其show()或showAndWait()方法。下面是一个显示JavaFX阶段的示例:

  为了显示JavaFX后台中的任何内容,必须在后台设置JavaFX场景对象。当舞台显示时,场景内容将显示在舞台内部。以下是在JavaFX舞台上设置场景的示例:

  可以通过Stage 的setTitle()方法设置JavaFX舞台标题。舞台标题显示在舞台窗口的标题栏中。下面是设置JavaFX阶段标题的示例:

  您可以通过JavaFX Stage的setX()和setY()方法设置其位置(X,Y)。setX()和setY()方法设置由Stage表示的窗口左上角的位置。下面是设置JavaFX舞台对象的X和Y位置的示例:

  请注意,如果设置X和Y位置,可能还需要设置舞台的宽度和高度,否则舞台窗口可能会变得非常小。有关设置舞台宽度和高度的详细信息,请参见下一节。

  您可以通过JavaFX Stage的setWidth()和setHeight()方法设置其宽度和宽度。下面是设置JavaFX后台的宽度和高度的示例:

  您可以设置JavaFX舞台的窗口模式。Stage模态确定表示Stage的窗口是否会阻止由同一JavaFX应用程序打开的其他窗口。您可以通过JavaFX阶段的initModality()方法设置其窗口模态。以下是设置JavaFX舞台模态的示例:

  请注意,这个示例是一个完整的JavaFX应用程序。启动JavaFX应用程序时会执行start()方法(调用第一个main()调用launch(),后者调用start()。还要注意,新的JavaFX阶段对象是如何创建的,它的模态模式设置,然后主舞台对象和新舞台对象都是可见的(如图所示)。第二舞台的模式设置为Modality.APPLICATION_ MODAL,这意味着它将阻止此JavaFX应用程序打开的所有其他窗口(Stage)。在关闭此阶段窗口之前,您无法访问任何其他窗口。Modality.WINDOW_MODAL modity选项意味着新创建的舞台将阻止“拥有”新创建舞台的舞台窗口,但仅限于此。不是应用程序中的所有窗口。请参阅下面的下一节,了解如何设置舞台的“所有者”。Modality.NONE Modality选项意味着此阶段不会阻止在此应用程序中打开的任何其他窗口。Modality.APPLICATION模态和Modality.WINDOW模态模态模式对于表示窗口的后台对象非常有用,这些窗口作为“向导”或“对话框”运行,在用户完成向导或对话框过程之前,应阻止应用程序或窗口。对于表示可以共存的窗口(如浏览器应用程序中的不同浏览器窗口)的后台对象,Modality.NONE模态非常有用。

  JavaFX舞台可以由另一个舞台拥有。可以通过舞台的initOwner()方法设置其所有者。下面是一个初始化JavaFX舞台所有者的示例,并将该阶段的模态设置为Modality.WINDOW_NORMAL:

  您可以通过JavaFX Stage的initStyle()方法设置其样式。有一组不同的样式可供选择:

  装饰舞台是带有操作系统装饰(标题栏和最小化/最大化/关闭按钮)和白色背景的标准窗口。未装饰的舞台是一个没有操作系统装饰的标准窗口,但仍然有白色背景。透明舞台是具有透明背景的未装饰窗口。一个统一的舞台就像一个装饰过的舞台,只是它在装饰区和主要内容区之间没有边界。

  您可以通过Stage setFullScreen()方法将JavaFX舞台切换到全屏模式。请注意,除非在舞台上设置场景,否则可能无法获得预期结果(全屏模式下的窗口)。以下是将JavaFX后台设置为全屏模式的示例:

  您可以在JavaFX后台关闭事件,这意味着您可以在用户单击后台窗口右上角打开X的按钮时收到通知。如果您需要在关闭主舞台窗口后清理某些资源,或者需要停止某些线程等,则侦听舞台关闭事件可能非常有用。以下是侦听舞台关闭事件的示例:

  您可以将舞台隐藏事件附加到JavaFX舞台。在隐藏舞台之前调用舞台隐藏事件,但在请求隐藏舞台之后调用。以下是将舞台隐藏事件附加到JavaFX舞台的示例:

  您可以将舞台隐藏事件附加到JavaFX舞台。后台隐藏事件在后台隐藏后调用。以下是将后台隐藏事件附加到JavaFX后台的示例:

  您可以将显示事件的舞台附加到JavaFX舞台。在请求显示舞台之后,但在显示舞台之前,调用显示舞台事件。下面是将显示事件的舞台附加到JavaFX舞台的示例:

  您可以将显示舞台的事件附加到JavaFX舞台。在显示舞台后,将调用舞台显示事件。下面是一个将舞台显示的事件附加到JavaFX舞台的示例:

  可以在JavaFX后台键盘事件。这样,您就可以捕获舞台聚焦时发生的所有键盘事件。下面是一个示例,用于侦听键盘上的ESC键和返回键-当JavaFX舞台具有焦点时:

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186