I am rather new to programming. I'm currently making a mobile application and one of the elements is a map (given from a static image) that I would like to allow a user to zoom in and out of as well as traverse around. When the user clicks a specific point on the map, it should generate an event. I just need some direction on how I could implement some sort of JPanel that would allow the user to do this. I assume that I should implement MouseListener and use mouseDragged to calculate moving the map, but I'm not sure how I can actually choose to show a cropped area of the map.

Could anyone give me some advice on how I should start this? I am fairly new to Swing, but if you could point me to the right classes and methods, I'll look over the API.