Actually, this is possible using a JWindow, I've done it before. However, the result it NOT as nice as dragging a JFrame/Frame. Here's how you do it: add a mouseMotionListener (for mouseDragged and mouseMoved events). Inside of the mouseDragged event you simply redraw the JWindow according to the new mouse position. I also added a mouseListener, and inside of the mousePressed event retrieved where the mouse was initially clicked inside the window. You can re-draw the window and keep the mouse cursor at the same position in the window where it was initially clicked.
This has a somewhat sparodic behavior though, in that the dragging of the JWindow sometimes redraws in locations where the mouse has not been dragged. It's an annoying problem that I have yet to solve. It's as if there is a problem reporting where the mouse cursor is, or that the redraws are not keeping up with the mouse movement. I modified the code to use double buffering for the dragging to make it smoother, but that didn't really help either. I'm currently looking into how to make the dragging smoother. I'll keep you updated if I get it working better.
I believe the dragging of a JFrame/Frame is handled by the operating system, whereas (since there is no title bar) the dragging of a JWindow has to be handled by the
Java code, which is SLOWER than the operating system.