Как изменить шрифт всех компонентов, отображаемых в моем Java-приложении?
Я попробовал это с помощью UIManager
UIManager.put("TextField.font", new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 11));
UIManager.put("Label.font", new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 11));
UIManager.put("ComboBox.font", new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 11))
Как ни странно, это изменило шрифт текстового поля, но не работало для JLabels или JComboBox.
Затем я попытался установить шрифт, перебирая все клавиши, которые знает UIManager:
public static void setUIFont(FontUIResource f) {
Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof FontUIResource) {
FontUIResource orig = (FontUIResource) value;
Font font = new Font(f.getFontName(), orig.getStyle(), f.getSize());
FontUIResource fontUIResource = new FontUIResource(font);
UIManager.put(key, fontUIResource);
UIManager.getDefaults().put(key, fontUIResource);
UIManager.getLookAndFeel().getDefaults().put(key, fontUIResource);
}
}
}
Этот код вообще не работал.
Я должен сказать, что я использую Synthetica как LookAndFeel... поэтому я не знаю, как это мешает моим ручным настройкам через UIManager.