2015-02-23 122 views
7

在高分辨率屏幕上(我的例子,Windows 8.1)是我的Java應用程序。菜單非常小,幾乎不可能選擇菜單項。如何在高分辨率屏幕上縮放字體?

在正常屏幕(72 DPI)中一切正常。

固定大小的字體(在我的情況下它會有< 80px),是一個糟糕的選擇。 72個DPI屏幕顯示它非常大。

如何讓字體可擴展以使程序符合其大小,或者用戶可以設置?

+0

我認爲最好的方法來處理一般任務是自定義PLAF(s)。 – 2015-02-23 12:18:01

+1

注意事項:請確保您使用Oracle JDK,而不是OpenJDK,因爲字體反鋸齒和某些相關的GUI功能是封閉源代碼。 – Nikolay 2015-02-23 12:35:04

回答

4

您可以通過訪問您的PLAF改變一個地方的默認字體大小: Java Swing on high-DPI screen

但這仍將使應用程序看起來很糟糕,因爲組件間的空間會在像素,因此不會與字體大小的比例。請參閱 http://www.javalobby.org/java/forums/t101878.html進行更長時間的討論。

我的建議是使用支持DPI的佈局庫,例如MigLayout,它支持以像素或DPI感知的毫米或釐米爲單位指定尺寸。然後,您可以使用FontMetrics爲字體查找正確的大小,從而將字體縮放和DPI識別間距耦合起來。