static { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); Enumeration keys = UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); Object value = UIManager.get(key); if (value instanceof Font) { Font f = (Font) value; UIManager.put(key, f.deriveFont(Font.BOLD, f.getSize() * 1.2f)); } } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { e.printStackTrace(); } localGraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); defaultScreenDevice = localGraphicsEnvironment.getDefaultScreenDevice(); displayMode = defaultScreenDevice.getDisplayMode(); for (GraphicsDevice device : localGraphicsEnvironment.getScreenDevices()) { System.out.println(device.toString()); } reloadFonts(); Config.addConfigChangeListener( new String[] { "font1_file", "font1_size", "font2_file", "font2_size", }, new ConfigChangeListener() { @Override public void configChanged(ConfigChangeEvent e) { reloadFonts(); MainFrame.getInstance().repaint(); ProgramWindow.getInstance().repaint(); } }); instance = new MainFrame(); }