我正在使用 JavaFX 创建应用程序。在我的代码中,我使用 setWidth() 和 setHeight() 方法设置窗口或元素的大小。例如:
stage.setWidth(400);
stage.setHeight(400);
传递给这些方法的值使用什么单位?它们是像素还是其他单位?如果它们是像素,官方文档或其他可靠来源中哪里提到了这一点?
我在 JavaFX 代码中使用了 setWidth() 和 setHeight() 方法,并期望以像素为单位设置大小。但是,我在官方文档中找不到确认单位的明确声明。我正在寻找权威来源来验证单位确实是像素还是其他单位。
据我了解,舞台的宽度和高度(以及 x 和 y 坐标)位于屏幕坐标中。(请注意,如果有多个物理显示器,它们将布置在包含所有屏幕的虚拟坐标系中,API
Screen
允许您访问它。)屏幕坐标可能与实际像素相对应,也可能不对应:关系由
outputScaleX
和outputScaleY
属性指定。这些属性是各个屏幕的属性;它们也是的属性Window
,并且窗口属性会使用当前显示窗口的屏幕的屏幕属性进行更新。renderScaleX
窗口实际上是按照和属性定义的比例呈现的renderScaleY
。默认情况下,这会跟踪outputScale
属性,但可以在代码中更改。这是一个快速测试工具。
我在 MacBookPro 上运行,除了默认的 MacBook 显示屏外,还连接了一个外接显示屏。外接显示屏是 DPI 为 108 的“主”屏幕,内置“视网膜”显示屏的 DPI 为 151。当我将舞台从视网膜显示屏移到视网膜显示屏时,由于输出比例不同,它的“物理”尺寸会缩小,如输出中所示: