I've found this solution更改整个应用程序的字体,但应用程序有一些字体为粗体,一些字体为普通字体(如 JTables 中的字体)。使用那里描述的方法,一切都变得“简单”(在本例中为“TRUETYPE”),甚至是菜单。我想保留默认的粗体。
public static void main(String[] args) {
setUIFont (new javax.swing.plaf.FontUIResource("VERDANA", Font.TRUETYPE_FONT, 14));
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frame = new MainFrame();
toggleFrame(frame);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
有没有办法仅更改大小,而不更改字体名称和样式? (将所有内容变成粗体同样是残暴的)。
最佳答案
您可以对该解决方案进行一些小修改。
public static void setUIFontSize(int newSize) {
Enumeration<Object> keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value != null
&& value instanceof javax.swing.plaf.FontUIResource) {
FontUIResource oldFont = (FontUIResource) value;
UIManager.put(key, oldFont.deriveFont((float) newSize));
}
}
}
关于java - 如何仅更改 swing 应用程序的所有字体的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42572339/