private static void showUiDefaultsForLaf(UIManager.LookAndFeelInfo laf) {
    try {
      UIManager.setLookAndFeel(laf.getClassName());
    } catch (Exception ex) {
      ex.printStackTrace(
          System
              .err); // The whole point of this class is to produce console output, so this is okay.
      return;
    }

    ArrayList<String> list = new ArrayList<String>();
    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
    for (Enumeration<Object> e = defaults.keys(); e.hasMoreElements(); ) {
      Object key = e.nextElement();
      list.add(laf.getName() + ":" + key + "=" + defaults.get(key));
    }
    Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
    for (String line : list) {
      System.out.println(line);
    }
  }