获取Java中的屏幕大小

时间:2013-03-14 11:19:12

标签: java swing awt screen

如何用Java获取屏幕尺寸?

屏幕分辨率,屏幕/显示器尺寸(英寸和宽高比)。 开发的应用程序必须显示某种必须具有相同大小的测试,而不管屏幕大小和宽高比。 让我们说我们想要显示一个宽2厘米,高2厘米的矩形,我们希望它对于每种可能类型的显示适配器都是相同的大小。

2 个答案:

答案 0 :(得分:2)

我认为答案是在纯Java中无法实现,可能根本不可能。

您可以通过默认的Toolkit对象获取Java中可显示的屏幕尺寸和标称缩放比例(dpi)。然而,这些通常是不准确的......这将导致非方形正方形。

您可以通过本机代码获得更准确的值,但这肯定是不可移植的。这个Q / A表示不可能 - How to get screen's physical size (i.e. in inches)?

答案 1 :(得分:0)

以下是在测试环境中校准特定显示器的一种方法概述:

  • 构建一个假定任意像素数/英寸(DPI)的校准矩形。估算可以从GraphicsConfiguration#getNormalizingTransform()获得。

  • 将该矩形缩放为假定的DPI。

  • 为水平和垂直DPI添加微调器。

  • 要求用户调整微调器以使矩形具有所需的尺寸。

  • 记录java.util.Preferences中的值以供后续使用。

  • 使用GraphicsDevice#getIDstring()识别特定的设备校准。

附录:Analyze > SetScale…对话框中ImageJ提供了类似功能,如wiki主题SpatialCalibration所示。