如何讓我的 Java Swing 應(yīng)用程序 GUI 在高 DPI 屏幕上正確縮放到用戶?請參閱下面的屏幕截圖。在頂部,您可以看到與 Ubuntu 的文件資源管理器圖標(biāo)和 gedit 相比,該應(yīng)用程序看起來有多小。在左下角,您可以大致看到應(yīng)用程序的大?。ú⑶以诔R?guī) DPI 監(jiān)視器上看起來確實如此)。因此,我正在尋找一種在使用高 DPI 監(jiān)視器時正確縮放應(yīng)用程序 GUI 的方法。例如,gedit 在常規(guī) DPI 和高 DPI 顯示器上看起來相同。我希望我的應(yīng)用程序表現(xiàn)得像這樣。這是該應(yīng)用程序的源代碼:https : //github.com/baobabKoodaa/baopass這是影響許多應(yīng)用程序的極其常見的問題。我在 Ubuntu 上運行的應(yīng)用程序中,大約有一半在用戶沒有任何操作的情況下正確縮放,另一半沒有縮放,看起來非常小。請注意,我主要是在尋找不需要用戶操作的解決方案(盡管此時對任何幫助表示贊賞 - 我還沒有找到任何擴展它的方法)。根據(jù)這種縮放比例應(yīng)該已經(jīng)開箱即用。它沒有。我不確定這是否是一個錯誤,或者除了在 Java 9 上運行應(yīng)用程序之外,我是否還應(yīng)該執(zhí)行一些額外的步驟?
2 回答

泛舟湖上清波郎朗
TA貢獻1818條經(jīng)驗 獲得超3個贊
您必須告訴繪圖庫放大應(yīng)用程序。
GDK_SCALE=2 ./應(yīng)用
將在環(huán)境中設(shè)置適當(dāng)?shù)男畔?,并且小部件將按比例渲染,以便每個像素有效地占用四個像素的足跡。
請注意,啟動畫面(如果您使用 Java 的啟動畫面支持)不會在整個 Swing 庫加載后顯示,因此無論您嘗試進行何種設(shè)置,它都不會縮放。
在某些平臺上,如Fedora 的Linux 發(fā)行版,也可以進行部分縮放,您可以設(shè)置GDK_SCALE=1.5。請記住,它并非普遍可用,并且無法設(shè)置為您可能想要的任何縮放比例。
最后,較舊的 JVM 完全忽略此設(shè)置,因此如果您不使用 Java 9 或更高版本啟動,則很可能無法正常工作。而且,當(dāng)然,針對較舊的 JVM 和不同的操作系統(tǒng)進行調(diào)整的方式往往會有所不同(如果它們確實有效的話)。
添加回答
舉報
0/150
提交
取消