@Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        // Offset used by the image, as well as their "highlighted" buttons.
        Point offsetHead   = new Point(10, 25);
        Point offsetMiddle = new Point(235, 30);

        // Sinleton to load the images only once. Placing this in the
        // Constructor will fail to load the images to begin with - Java bug?
        if(imageWiiHead == null) {
            try {
                imageWiiHead   = ImageIO.read(getClass().getResource("/Resources/wiiremote_head.png"));
                imageWiiMiddle = ImageIO.read(getClass().getResource("/Resources/wiiremote_middle.png"));
            } catch (IOException ex) { }
        }
        
        g.drawImage(imageWiiHead, offsetHead.x, offsetHead.y, null);
        g.drawImage(imageWiiMiddle, offsetMiddle.x, offsetMiddle.y, null);

        // Color of the highlighted buttons:
        g.setColor(Color.decode("0x5b7886"));

        // This routine should highlight any button currently pressed.
        if(isLeft)  drawSquare(g, 42, 95, offsetHead); // left
        if(isRight) drawSquare(g, 95, 95, offsetHead); // right
        if(isUp)    drawSquare(g, 68, 68, offsetHead); // up
        if(isDown)  drawSquare(g, 68, 122, offsetHead); // down

        if(isMinus) drawCircle(g, 23, 23, offsetMiddle); // - button
        if(isPlus)  drawCircle(g, 111, 23, offsetMiddle); // + button
    }