@Override
    protected void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        super.paintComponent(g2);
        g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

        g2.drawImage(background, 0, 0, getWidth(), getHeight(), this);
        for( int i = 0; i < guessOptions.length; i++ ){
            if( guessOptions[i] != null ) {
                // Switch to determine which Y coordinate to use while drawing the image
                switch(i){
                    case 0:
                        g2.drawImage(guessOptions[guessIndeces[i]].img, imageX, image1Y, guessOptions[guessIndeces[i]].width, guessOptions[guessIndeces[i]].height, this);
                        break;
                    case 1:
                        g2.drawImage(guessOptions[guessIndeces[i]].img, imageX, image2Y, guessOptions[guessIndeces[i]].width, guessOptions[guessIndeces[i]].height, this);
                        break;
                    case 2:
                        g2.drawImage(guessOptions[guessIndeces[i]].img, imageX, image3Y, guessOptions[guessIndeces[i]].width, guessOptions[guessIndeces[i]].height, this);
                        break;
                    case 3:
                        g2.drawImage(guessOptions[guessIndeces[i]].img, imageX, image4Y, guessOptions[guessIndeces[i]].width, guessOptions[guessIndeces[i]].height, this);
                        break;
                    default:
                        break;
                }
            }
        }
        g2.drawImage(leftScanImage, leftScanX, leftScanY, 400, 400, this);
    }