Q:

Highlight Part of Image Icon on JLabel in Java

I have an image of a map. When the user clicks a button, I want to put a red square box as a highlight on a certain location of the map like this: 

How do I highlight a portion like this? 
Currently, I am achieving this by creating a new image which has this area highlight and loading that image when the user clicks on the button. However in this case I'll have to develop 66 images and load one for each button.

A:

Extend the JLabel to do custom painting.
You would keep an ArrayList of Rectangles that you want to paint. When you click a button you add a Rectangle to the ArrayList. Then in the paintComponent(...) method you iterate through the ArrayList to paint each Rectangle.
So the basic changes to the extend the JLabel would be:
private ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();

...

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

    for (Rectangle r: rectangles)
    {
        g.setColor( Color.RED );
        g.drawRect(...);
    }
}

public void addRectangle(Rectangle r)
{
    rectangles.add( r );
}

For a working example of this approach check out the DrawOnComponent example found in Custom Painting Approaches. 
Another option might be to use a JLayer to paint the Rectangles on the JLabel. Read the section from the Swing tutorial on How to Decorate Component With the JLayer Class for some working examples.
Either way you need to do custom painting. Try both approaches to see which you prefer.

