2016-12-03 125 views
0

当试图获得用户的显示器在Windows设备上的分辨率(而不是像素数,但当前的工作分辨率)时,我有一个有趣的问题。 Screen.getPrimary().getBounds()在ALMOST所有系统上返回正确的结果。 Win 10笔记本电脑有问题。即使它们是4K和全高清设备,其分辨率也被认定为1280x768。JavaFX Screen.getPrimary()。getBounds()返回不正确的屏幕尺寸

我也尝试以下方法:

  • Toolkit.getDefaultToolkit().getScreenSize()
  • Screen.getScreens(),然后遍历所有屏幕(只找到)
  • GraphicsDevice getDisplayMode().getWidth();
  • GraphicsEnvironment getScreenDevices(),然后遍历所有屏幕(仅一个被发现)

我没有更多的想法。有没有其他方式如何在所有Windows设备上正确获取屏幕分辨率?

回答

1

我既不知道您的设备也不知道Windows 10,但您应该记住一件事。报告的大小不是设备的物理像素大小。报告缩放大小。在Windows上,这取决于设备的显示设置。例如,我的Mac的物理像素大小为2880x1800,但报告的大小为1440x900。根据您的设置,这并不总是完全为2.

+0

是的,你说得对。我忘记提及FullHD笔记本电脑在将其设置为较低值(例如1600x900)时报告正确的分辨率。它只在某些决议中“谎言”!是的,如果它报告正确的缩放分辨率,但是即使这些值每次都不正确,我也会很好... – shaiko

+0

不,我不是在说改变分辨率。我正在谈论默认的文字大小设置。我不知道如何在Windows中调用它。 – mipa

+0

啊,我误会了你。你是对的!这可能是问题所在。我会马上查看! – shaiko