So, I’m making a platformer at the moment, and have a few development tools made so that other people ca do some of the work for me (Like write dialogue, cutscenes, make maps, and put together sound-packs). One of the things that I’ve been asked to do is add a function that will allow somebody to zoom in and out of maps in the map-maker. Maps are rendered by loading a large number of JLabels containing ImageIcons into a JInternalFrame. Each JLabel is 40*40 pixels in size, and the ImageIcons are either .gif or .png . Three JLabels occupy any given single space; one for foreground, one for middle ground, one for background. Each JLabel has a MouseListener added to it.
Is there any way of resizing all labels and shrinking their respective icons?
When I was doing my first editor, I was planing to use the same system with JLabel. But I give up quickly it, I never find a good way to deal with thing like zoom.
One big JLabel, two scroolbars and you draw everything yourself in a Image than you give as Icon to the JLabel. It may be not the nicest solution but it is not difficult to deal with 
Another solution can be : extends JLabel and overwrite the paint method to shrink the image to paint to the size of the component.
GridLayout plus having your labels paint everything to their relative size. So always paint everything regardless of size. you look how that performs.
depending on how bad it gets you opt for using a minimap (which kinda removes the need for zoom) or add different levels of zoom.