gpt4 book ai didi

java - 从命令行更改 Swing 字体大小

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:19 24 4
gpt4 key购买 nike

我正在使用一个 Swing 应用程序,它在我的计算机上显示的文本字体小得离谱。

有没有办法从命令行或某种配置文件(例如,swing.properties 文件)更改字体大小或某种 DPI 设置)?

我无权访问源代码。


编辑:

从 Java 9 开始,小字体应该不再是问题。Swing has started to scale its GUI components depending on the screen resolution .

最佳答案

没有用于更改 Swing 字体大小的命令行开关。您需要做的是调用以下方法:

public static void adjustFontSize(int adjustment) {

UIDefaults defaults = UIManager.getDefaults();
List<Object> newDefaults = new ArrayList<Object>();
Map<Object, Font> newFonts = new HashMap<Object, Font>();

Enumeration<Object> en = defaults.keys();
while (en.hasMoreElements()) {
Object key = en.nextElement();
Object value = defaults.get(key);
if (value instanceof Font) {
Font oldFont = (Font)value;
Font newFont = newFonts.get(oldFont);
if (newFont == null) {
newFont = new Font(oldFont.getName(), oldFont.getStyle(), oldFont.getSize() + adjustment);
newFonts.put(oldFont, newFont);
}
newDefaults.add(key);
newDefaults.add(newFont);
}
}
defaults.putDefaults(newDefaults.toArray());
}

其中 adjustment 是应该添加到每个字体大小的点数。

如果您无权访问源代码,您始终可以在调用的地方编写自己的包装器主类

    UIManager.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
if (event.getPropertyName().equals("lookAndFeel")) {
adjustFontSize(5);
}
}
});

在调用实际应用的main方法之前。

但是,如果字体非常小,则可能已明确设置,因此更改默认值可能无济于事。

关于java - 从命令行更改 Swing 字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12422048/

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