JavaFX17----管理stage

了解屏幕的细节

无法在非javafx应用程序中获得屏幕描述。这就是为什么要在JavaFX应用程序类的start()方法中编写代码的原因。不需要在JavaFX应用程序线程上使用Screen类。您还可以在类的init()方法中编写相同的代码。

什么是Stage

Stage类继承自Window类。Window类是几个窗口行容器类的父类。它包含了所有类型的窗口都通用的基本功能(例如,显示和隐藏窗口的方法;设置x、y、宽度和高度属性;设置窗口的不透明度;等等)。Window类定义了x、y、宽度、高度和不透明度属性。它有show()和hide()方法分别显示和隐藏窗口。Window类的setScene()方法为窗口设置场景。Stage类定义了一个close()方法,其效果与调用Window类的hide()方法相同。

Stage对象必须在JavaFX应用程序线程上创建和修改。Application类的start()方法是在JavaFX应用程序线程上调用的,并且创建了一个primary Stage并将其传递给该方法。注意,传递给start()方法的primary stage没有显示出来,需要调用show()方法来显示它。

展示主要舞台

Stage类的close()方法与调用Window类的hide()方法具有相同的效果。

如果stage没有显示,close()方法不会关闭舞台。

设置舞台的边界

定位和调整舞台大小的规则。

•如果没有指定舞台的边界并且它没有场景,它的边界由平台决定。

•它有一个没有可视节点的场景,它的边界由平台决定。在这种情况下,场景的大小没有指定。

•它有一个带有一些可视节点的场景,其边界由场景中的可视节点决定。在这种情况下,没有指定场景的大小,并且舞台位于屏幕的中心。

•它有一个场景,场景的大小是指定的,它的边界是由指定的场景大小决定的。舞台在屏幕中央。

如果指定了舞台的大小,但没有指定它的位置,那么舞台就会根据设定的大小进行调整,并位于屏幕的中心,而不管场景的存在和场景的大小。如果指定舞台的位置(x, y坐标),它将相应地定位。

初始化舞台的样式

JavaFX中有5中stages:

• Decorated • Undecorated • Transparent • Unified • Utility

JavaFX stage 有三种类型的显示模式:

• None • Window modal • Application modal

可以使用stage类的initModality(modality m)方法设置舞台的显示模式,如下所示:

// Create a Stage object and set its modality Stage stage = new Stage(); stage.initModality(Modality.WINDOW_MODAL); /* More code goes here.*/ // Show the stage stage.show();

stage的显示模式必须在演出前确定。在舞台显示后设置它的模态会引发运行时异常。设置主阶段的模态也会引发运行时异常。

Stage的默认模态是NONE。当显示模式为NONE的Stage时,它不会阻塞应用程序中的任何其他窗口。它表现为一个非模态窗口。

具有WINDOW_MODAL模态的Stage阻塞其所有者层次结构中的所有窗口。

如果显示了其模态设置为APPLICATION_MODAL的Stage,则必须先处理Stage并将其解散,然后才能处理应用程序中的任何其他窗口。

showAndWait()方法必须在JavaFX应用程序线程上调用。它不应该在主阶段调用,否则将引发运行时异常。

summary

javafx中的Screen类。阶段包用于获取用户屏幕的详细信息,如DPI设置和尺寸,这些屏幕连接到运行程序的机器上。如果存在多个屏幕,其中一个屏幕称为主屏幕,其他屏幕是非主屏幕。您可以使用Screen类的静态getPrimary()方法获取主监视器的Screen对象的引用。

JavaFX中的stage是承载场景的顶层容器,场景由视觉元素组成。javafx中的Stage类。stage包表示JavaFX应用程序中的一个阶段。主阶段由平台创建,并传递给Application类的start(stage 5)方法。您可以根据需要创建其他阶段。

舞台有包含其位置和大小的边界。舞台的边界由它的四个属性定义:x、y、宽度和高度。x和y属性决定舞台左上角的位置(或位置)。宽度和高度属性决定了它的大小。

舞台的面积可以分为两部分:内容区和装饰区。内容区显示其场景的可视内容。通常,装饰由标题栏和边框组成。标题栏的存在及其内容取决于平台提供的装饰类型。在JavaFX中可以有五种类型的阶段:修饰的、未修饰的、透明的、统一的和实用的。

JavaFX允许有两种类型的窗口:模态窗口和非模态窗口。当显示一个模态窗口时,用户不能使用应用程序中的其他窗口,直到该模态窗口被解除。

如果应用程序显示多个非模态窗口,用户可以随时在它们之间切换。

JavaFX为一个阶段定义了三种类型的模态:无、窗口模态和应用程序模态。无模态的阶段是无模态窗口。以窗口模态作为其模态的阶段阻塞其所有者层次结构中的所有窗口。以应用程序模态为其模态的阶段阻塞应用程序中的所有其他窗口。

舞台的不透明度决定了你能透过舞台看到多少东西。您可以使用setOpacity(双重不透明度)方法设置舞台的不透明度。不透明度的取值范围为0.0 ~ 1.0。不透明度为0.0意味着舞台是完全半透明的;1.0的不透明度意味着该阶段是完全不透明的。不透明度影响舞台的整个区域,包括它的装饰。

可以使用Stage类的show()和showAndWait()方法来显示舞台。show()方法显示舞台并返回,而showAndWait()方法显示舞台并阻塞,直到舞台关闭。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值