static Map swingFontScale_originals; static float swingFontScale_value = 1; static void swingFontScale(final float scale) swing { swingFontScale_value = scale; if (swingFontScale_originals == null) { swingFontScale_originals = new HashMap; for (Map.Entry entry : UIManager.getDefaults().entrySet()) { Object key = entry.getKey(); if (key.toString().toLowerCase().contains(".font")) { Object value = entry.getValue(); Font font = null; if (value instanceof UIDefaults.LazyValue) { UIDefaults.LazyValue lazy = (UIDefaults.LazyValue) entry.getValue(); value = lazy.createValue(UIManager.getDefaults()); } if (value instanceof Font) { font = (Font) value; swingFontScale_originals.put(key.toString(), font); } } } } for (Map.Entry entry : swingFontScale_originals.entrySet()) { String key = entry.getKey(); Font font = entry.getValue(); float size = font.getSize(); size *= scale; font = font.deriveFont(Font.PLAIN, size); UIManager.put(key, font); } //revalidateAllFrames(); } static float swingFontScale() { ret swingFontScale_value; }