7
在高分辨率屏幕上(我的例子,Windows 8.1)是我的Java應用程序。菜單非常小,幾乎不可能選擇菜單項。如何在高分辨率屏幕上縮放字體?
在正常屏幕(72 DPI)中一切正常。
固定大小的字體(在我的情況下它會有< 80px),是一個糟糕的選擇。 72個DPI屏幕顯示它非常大。
如何讓字體可擴展以使程序符合其大小,或者用戶可以設置?
在高分辨率屏幕上(我的例子,Windows 8.1)是我的Java應用程序。菜單非常小,幾乎不可能選擇菜單項。如何在高分辨率屏幕上縮放字體?
在正常屏幕(72 DPI)中一切正常。
固定大小的字體(在我的情況下它會有< 80px),是一個糟糕的選擇。 72個DPI屏幕顯示它非常大。
如何讓字體可擴展以使程序符合其大小,或者用戶可以設置?
您可以通過訪問您的PLAF改變一個地方的默認字體大小: Java Swing on high-DPI screen
但這仍將使應用程序看起來很糟糕,因爲組件間的空間會在像素,因此不會與字體大小的比例。請參閱 http://www.javalobby.org/java/forums/t101878.html進行更長時間的討論。
我的建議是使用支持DPI的佈局庫,例如MigLayout,它支持以像素或DPI感知的毫米或釐米爲單位指定尺寸。然後,您可以使用FontMetrics爲字體查找正確的大小,從而將字體縮放和DPI識別間距耦合起來。
我認爲最好的方法來處理一般任務是自定義PLAF(s)。 – 2015-02-23 12:18:01
注意事項:請確保您使用Oracle JDK,而不是OpenJDK,因爲字體反鋸齒和某些相關的GUI功能是封閉源代碼。 – Nikolay 2015-02-23 12:35:04