This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
I need to make a JPanel within another ( null layout ) JPanel movable but I don't know how to aproach this.
I want the user to be able to click and hold on the movable JPanel, move the cursor ( with the JPanel following the cursor movements ) and then when the user releases the mouse click, the JPanel stays in place.
I know I can capture the required mouse events on the movable JPanel but I don't know how to get the JPanel to follow the cursor movements.
You can use a JLayeredPane or a glassPane for this. The tutorial has a demonstration app for each on the page 'How to Use Root Panes'. See the JRootPane api for more about glassPanes. At the top of the (api) page there is a link into the tutorial to the root pane page.
For hand–made work an easy way is to mount a non–opaque JPanel over the parent panel with an OverlayLayout and use it for the mouse code. It will, of course, restrict access to the parent panel. But it has the advantage of covering only the parent panel, unlike a glassPane, leaving other ui components in the clear. One way to put this together: