gpt4 book ai didi

java - 我可以在不更改系统 DPI 设置的情况下设置 Java Swing 应用程序的 DPI 分辨率吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:07 26 4
gpt4 key购买 nike

我有一个使用 Substance LookAndFeel 的 Java 应用程序,Windows 作为目标平台,我想增加我的应用程序的 DPI 设置, 不更改系统设置。

我想这样做是因为我不想强制用户重新启动 Windows 并且因为许多 Windows 应用程序似乎在非常高的 DPI 设置 (> 120) 下出现问题

PS:我知道 Substance LaF 允许在运行时缩放字体大小,但那样只会缩放控件的高度,而不是宽度。我希望我的 GUI 完全缩放,因为如果我设置系统的 DPI 设置,就会发生这种情况。

最佳答案

不知道这是否可行。外观必须支持它,据我所知,Windows 外观不支持。这里有一个你可能会考虑的 hack:遍历你的外观和感觉中定义的所有字体,并将它们重新定义为稍微大一点。这是执行此操作的代码片段:

for (Iterator i = UIManager.getLookAndFeelDefaults().keySet().iterator(); i.hasNext();) {
String key = (String) i.next();
if(key.endsWith(".font")) {
Font font = UIManager.getFont(key);
Font biggerFont = font.deriveFont(2.0f*font.getSize2D());
// change ui default to bigger font
UIManager.put(key,biggerFont);
}
}

我想您可以更进一步并按比例重新定义比例边界,但这很快就会变得非常复杂

关于java - 我可以在不更改系统 DPI 设置的情况下设置 Java Swing 应用程序的 DPI 分辨率吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com