public static void main(String[] args){
        parser = new OptionParser(args);
        if (parser.containsOption("--noUIManager")) systemLook = false;
        if (systemLook){
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception e) {
                ErrorControl.addError(e, ErrorControl.Type.UIMANAGER);
                MessageControl.showExceptionMessage(e, "UIManager failed with System Look");
                try {
                    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
                } catch (Exception ex) {
                    ErrorControl.addError(ex, ErrorControl.Type.UIMANAGER);
                    MessageControl.showExceptionMessage(ex, "UIManager totally failed. Press OK to"
                            + " restart the program.");
                    if (!parser.addOption("--noUIManager")){
                        MessageControl.showErrorMessage("Program can't be relaunched again and again."
                                + " It will exit.", "Relaunch failed detected");
                        System.exit(1);
                    }
                    relaunch(parser.getOptions());
                }
            }
        }
        frame = new Gui();
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }