2016-12-03 127 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