了解屏幕的细节
无法在非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()方法显示舞台并阻塞,直到舞台关闭。