@Override
    public void actionPerformed(ActionEvent e)
    {
        String cmd = e.getActionCommand();
        
        if ("Beginner".equals(cmd))
        {
            this.main.setDifficulty(this.main.BEGINNER);
        }
        else if ("Intermediate".equals(cmd))
        {
            this.main.setDifficulty(this.main.INTERMEDIATE);
        }
        else if ("Expert".equals(cmd))
        {
            this.main.setDifficulty(this.main.EXPERT);
        }
        else if ("Custom".equals(cmd))
        {
            CustomGameDialog customDialog = new CustomGameDialog(this.main);
            this.main.setDifficulty(
                this.main.CUSTOM,
                customDialog.getWidthVal(), 
                customDialog.getHeightVal(), 
                customDialog.getNumMinesVal()
            );
        }
        else if ("New Game".equals(cmd))
        {
            this.main.newGame();
        }
        else if ("Best Times".equals(cmd))
        {
            this.main.getBestTimesObj().displayBestTimes();
        }
        else if ("Exit".equals(cmd))
        {
            System.exit(0);
        }
        else if ("View Help".equals(cmd))
        {
            JOptionPane.showMessageDialog(
                null,
                "The goal of Minesweeper is to uncover all the tiles that\n" +
                "do not contain mines. Clicking on a tile that does not\n" +
                "contain a mine will instead contain a number from 1 to 8,\n" +
                "indicating the number of mines adjacent to the uncovered\n" +
                "tile. If you click on a mine, you lose the game. You may\n" +
                "flag a tile you suspect to be a mine by right-clicking on\n" +
                "the tile. You can middle-click uncovered tiles to speed up\n" +
                "your game play. Good luck!\n",
                "Help", 
                JOptionPane.DEFAULT_OPTION
            );
        }
        else if ("About".equals(cmd))
        {
            JOptionPane.showMessageDialog(
                null,
                "A tribute to the original Minesweeper\n" +
                "Version: 1.0\n" +
                "Author: Michael Seymour\n" +
                "Year: 2011\n",
                "About Minesweeper", 
                JOptionPane.DEFAULT_OPTION
            );
        }
    }