As as I mentioned before I’ve been recently converting an old project to Java.
This old project was an MDI application, and when creating the UI for the conversion, I found the default JDesktopPane to be rather crappy. Google revealed others thought the same, one of the results that turned up was: http://www.javaworld.com/javaworld/jw-05-2001/jw-0525-mdi.html
So, I created DFDesktopPane based on this code, with some extra changes:
- Frames can’t end up with a negative x/y
- Respond to resize events of the JViewport parent
- Iconified icons move themselves to remain inside the desktop at all times.
- Handles maximised frames correctly (desktop doesn’t scroll, option to hide/remove titlebar)
Other useful things can be found here, take a look and leave any feedback either here or on the project issue tracker