Now that the drop side is working, how do we make the drag side go? First, we need a bit of background information. To successfully accomplish a drag in Java, we must first recognize what constitutes a drag gesture. A drag gesture is an action the user takes to indicate that she’s starting a drag. Typically, this is a mouse drag event, but it is not hard to imagine other gestures that could be used. For example, a voice-activated system might listen for the words “pick up” or something similar.
The API for drag gestures is fairly simple. Four DnD classes and
interfaces make up the core:
DragGestureEvent, as shown in Figure 24-4.
Figure 24-4. Drag recognition class diagram
At the heart of this API is the
DragGestureRecognizer class. Basically, the
recognizer is responsible for recognizing a sequence of events that
says “start dragging.” This can be quite different for different
platforms, so the
DragGestureRecognizer class is abstract and
must be subclassed to create an appropriate implementation. (The
MouseDragGestureRecognizer takes a few more steps to complete the class and makes assumptions about using a mouse as the trigger for drag events. You can use the toolkit on your system to retrieve a concrete version.) This sounds more complex than it is. The idea ...