FontDescriptor[] () { ArrayList<FontDescriptor> result = new ArrayList<>(); UIDefaults defaults = UIManager.getDefaults(); Enumeration e = defaults.keys (); while(e.hasMoreElements()) { Object key = e.nextElement(); Object value = defaults.get(key); if (key instanceof String && value instanceof Font) { result.add(FontDescriptor.fromSwingFont((String) key)); } } result.sort(Comparator.comparing(FontDescriptor::getSwingFont)); return result.toArray(new FontDescriptor[0]); }