public HelpFrame() {    
    this.setTitle("Syntaxilizer Help");
    this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    this.setSize(Main.WIDTH - 200, Main.HEIGHT - 100);
    this.setResizable(true);
    this.setLocationRelativeTo(null); //center window on screen
        
    helpPane = new JEditorPane();
    helpPane.setMargin(new Insets(10, 10, 10, 10));
    helpPane.setEditable(false);
    helpPane.setEditorKit(JEditorPane.createEditorKitForContentType("text/html"));
    helpPane.addHyperlinkListener(new HyperlinkListener() {
      public void hyperlinkUpdate(HyperlinkEvent e) {
        if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
          if (Desktop.isDesktopSupported()) {
            try {
              Desktop.getDesktop().browse(e.getURL().toURI());
            } catch (Exception e1) {
              e1.printStackTrace();
            }
          }
        }
      }
    });
    try {
      helpPane.setPage((new File("resources\\help.html")).toURI().toURL());
    } catch (Exception e) {
      helpPane.setText("Cannot load help file from resources\\help.html");
      e.printStackTrace();
    }
    helpPane.setFont(Main.normalFont.deriveFont(13.0f));
    JScrollPane scrollPane = new JScrollPane(helpPane);
    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    scrollPane.setPreferredSize(new Dimension(250, 145));
    scrollPane.setMinimumSize(new Dimension(10, 10));
    
    this.add(scrollPane);
    this.setVisible(true);
  }