ui/src/main/java/ucar/nc2/ui/ToolsUI.java
private static void prepareGui() {

        final String osName = System.getProperty("os.name").toLowerCase();
        final boolean isMacOs = osName.startsWith("mac os x");

        if (isMacOs) {
            System.setProperty("apple.laf.useScreenMenuBar", "true");

            // fixes the case on macOS where users use the system menu option to quit rather than
            // closing a window using the 'x' button.
            Runtime.getRuntime().addShutdownHook(new Thread() {
                @Override
                public void run() {
                    doSavePrefsAndUI();
                }
            });
        }
        else {
            // Not macOS, so try applying Nimbus L&F, if available.
            try {
                for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            }
            catch (Exception exc) {
                log.warn("Unable to apply Nimbus look-and-feel due to {}", exc.toString());

                if (log.isTraceEnabled()) {
                    exc.printStackTrace();
                }
            }
        }

        // misc Gui initialization(s)
        BAMutil.setResourcePath("/resources/nj22/ui/icons/");

        // Setting up a font metrics object triggers one of the most time-wasting steps of GUI set up.
        // We do it now before trying to create the splash or tools interface.
        SwingUtilities.invokeLater(( ) -> {
            final Toolkit tk = Toolkit.getDefaultToolkit ( );
            final Font f = new Font ("SansSerif", Font.PLAIN, 12);

            @SuppressWarnings("deprecation")
            final FontMetrics fm = tk.getFontMetrics (f);
        });
    }
private static void prepareGui() {

        final String osName = System.getProperty("os.name").toLowerCase();
        final boolean isMacOs = osName.startsWith("mac os x");

        if (isMacOs) {
            System.setProperty("apple.laf.useScreenMenuBar", "true");

            // fixes the case on macOS where users use the system menu option to quit rather than
            // closing a window using the 'x' button.
            Runtime.getRuntime().addShutdownHook(new Thread() {
                @Override
                public void run() {
                    doSavePrefsAndUI();
                }
            });
        }
        else {
            // Not macOS, so try applying Nimbus L&F, if available.
            try {
                for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            }
            catch (Exception exc) {
                log.warn("Unable to apply Nimbus look-and-feel due to {}", exc.toString());

                if (log.isTraceEnabled()) {
                    exc.printStackTrace();
                }
            }
        }

        // misc Gui initialization(s)
        BAMutil.setResourcePath("/resources/nj22/ui/icons/");

        // Setting up a font metrics object triggers one of the most time-wasting steps of GUI set up.
        // We do it now before trying to create the splash or tools interface.
        SwingUtilities.invokeLater(( ) -> {
            final Toolkit tk = Toolkit.getDefaultToolkit ( );
            final Font f = new Font ("SansSerif", Font.PLAIN, 12);

            @SuppressWarnings("deprecation")
            final FontMetrics fm = tk.getFontMetrics (f);
        });
    }
Set look-and-feel.