gpt4 book ai didi

java - 以编程方式为所有组件使用默认的 ttf 字体

转载 作者:行者123 更新时间:2023-11-30 10:17:30 26 4
gpt4 key购买 nike

我正在尝试以编程方式设置默认字体,但它似乎没有效果。如何以编程方式更改默认字体?

我试过这个:

        def=Font.createTrueTypeFont("Shojumaru", "Shojumaru-Regular.ttf").derive(fis.display_faktor(80), Font.STYLE_PLAIN);
UIManager.getInstance().getComponentStyle("Label").setFont(def);
Display.getInstance().getCurrent().refreshTheme();

我也试过没有效果:

Hashtable h = new Hashtable();
h.put("font", largeFont);
UIManager.getInstance().addThemeProps(h);
Display.getInstance().getCurrent().refreshTheme();

最佳答案

第二种语法通常应该有效,但它不会覆盖所有组件,因为如果特定组件定义了 native 主题中将被选择的字体。

您还需要使用以下方法覆盖选定/按下/禁用的字体:

h.put("sel#font", largeFont);
h.put("press#font", largeFont);
h.put("dis#font", largeFont);

然后你需要覆盖像 Button 这样的东西,例如:

h.put("Button.font", largeFont);
h.put("Button.sel#font", largeFont);
h.put("Button.press#font", largeFont);
h.put("Button.dis#font", largeFont);

更简单的替代方法是加载底层主题:

Map<String, Object> themeHash = (Map<String, Object>)theme.getTheme("Theme");
for(String k : themeHash.keySet()) {
if(k.endsWith("font")) {
themeHash.put(k, largeFont);
}
}
UIManager.getInstance().setThemeProps(h);
Display.getInstance().getCurrent().refreshTheme();

关于java - 以编程方式为所有组件使用默认的 ttf 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49708399/

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