public ScrabbleGame(Container contentPane)
    {
        // Create a canvas!
        super();

        // Load fonts
        if (!FontLoader.isMainFontSet()) FontLoader.setMainFont("FontBoard.ttf", 18);
        if (!FontLoader.isSecondaryFontSet()) FontLoader.setSecondaryFont("FontMessage.ttf", 13);

        // Set fonts on user inputs.
        dInput.setFont(FontLoader.getSecondaryFont());
        input.setFont(FontLoader.getSecondaryFont());
        JLabel tempLabel;

        // Create right side panel
            JPanel mainRight = new JPanel();
            mainRight.setLayout(new BoxLayout(mainRight, BoxLayout.Y_AXIS));
            mainRight.setBackground(barColor);

            tempLabel = new JLabel("Tiles in hand:");               tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            mainRight.add(input);
            input.setText(inputStart);

            JPanel tPanel = new JPanel();
            tPanel.add(submit);
            tPanel.add(reset);
            tPanel.setBackground(barColor);
            mainRight.add(tPanel);

            tempLabel = new JLabel("Board:");                       tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            for (int i = 0; i < boardChecks.length; i++)
            {
                boardChecks[i] = new JCheckBox(String.valueOf(i+1));
                boardChecks[i].setFont(FontLoader.getSecondaryFont());
                boardChecks[i].setBackground(barColor);
                mainRight.add(boardChecks[i]);
            }
            boardChecks[0].setSelected(true);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);

            tempLabel = new JLabel("Board Type:");                  tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            for (int i = 0; i < gameTypeChecks.length; i++)
            {
                gameTypeChecks[i] = new JCheckBox(gameTypes[i]);
                gameTypeChecks[i].setFont(FontLoader.getSecondaryFont());
                gameTypeChecks[i].setBackground(barColor);
                mainRight.add(gameTypeChecks[i]);
            }
            gameTypeChecks[0].setSelected(true);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);

            tempLabel = new JLabel("Dictionary:");                  tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            for (int i = 0; i < dictChecks.length; i++)
            {
                dictChecks[i] = new JCheckBox(Dictionary.getforint(i).toString());
                dictChecks[i].setFont(FontLoader.getSecondaryFont());
                dictChecks[i].setBackground(barColor);
                mainRight.add(dictChecks[i]);
            }
            dictChecks[0].setSelected(true);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);

            tempLabel = new JLabel("Look up a word here:");         tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            mainRight.add(dInput); dInput.setText(dInputStart);
            dInput.setSelectionColor(Color.WHITE);
            dInput.setSelectedTextColor(Color.RED);

            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);
            tempLabel = new JLabel(" ");                            tempLabel.setFont(FontLoader.getSecondaryFont());   mainRight.add(tempLabel);


        // DO THIS TO ALIGN PROPERLY
        Component comp[] = mainRight.getComponents();
        for (int i = 0; i < comp.length; i++)
        {
            ((JComponent)comp[i]).setAlignmentX(Component.LEFT_ALIGNMENT);
        }
        mainRight.validate();

        // Init our array variables.
        for(int i = 0; i<15; i++)
            for(int k = 0; k<15; k++)
            {
                baseColors[i][k] = tileColor;
                letColors[i][k] = textColor;
                let[i][k] = ' ';
            }
        
        // Add stuff to container!
        contentPane.setLayout(new BorderLayout());
        contentPane.add(this, BorderLayout.CENTER);
        contentPane.add(mainRight, BorderLayout.EAST);
        contentPane.validate();
        
        // Created double buffer image & graphics.
        offscreen = new BufferedImage(super.getWidth(), super.getHeight(), BufferedImage.TYPE_INT_RGB);
        bufferGraphics = offscreen.getGraphics(); 
    }