sbool swingFontScale_debug; static void swingFontScale(double scale) { swingFontScale((float) scale); } static void swingFontScale(float scale) swing { vm_generalMap_set('swingFontScale_value, scale); Map swingFontScale_originals = cast vm_generalMap_get('swingFontScale_originals); if (swingFontScale_originals == null) { vm_generalMap_set('swingFontScale_originals, swingFontScale_originals = new HashMap); for (Map.Entry entry : UIManager.getDefaults().entrySet()) { O key = entry.getKey(); if (key.toString().toLowerCase().contains(".font")) { O value = entry.getValue(); Font font = null; if (swingFontScale_debug) print("swingFontScale found value: " + key + " = " + value); if (value cast UIDefaults.LazyValue) value = value.createValue(UIManager.getDefaults()); else if (value cast Font) swingFontScale_originals.put(key.toString(), value); } } } for (S key, Font font : swingFontScale_originals) { Font font2 = font.deriveFont(Font.PLAIN, font.getSize()*scale); if (swingFontScale_debug) print("swingFontScale " + scale + ": Setting " + key + " = " + font2); UIManager.put(key, font2); } //revalidateAllFrames(); } static float swingFontScale() { ret getSwingFontScale(); }