| Java >
Guidelines Home Page > Java Look and Feel Design Guidelines >
Part II: Fundamental Java Application Design >
6: Behavior > Drag-and-Drop Operations
Drag-and-drop operations include moving, copying, or linking selected objects by dragging them from one location and dropping them over another. These operations provide a convenient and intuitive way to perform many tasks using direct manipulation. Common examples of drag and drop in the user interface are moving files by dragging file icons between folders or dragging selected text from one document to another. The Java 2 platform supports drag and drop within an application, between two Java applications, or between a Java application and a native application. For example, on a Microsoft Windows system, users can drag a text selection from a Java application and drop it into a Microsoft Word document.
Provide keyboard equivalents for all drag-and-drop operations (such as Cut, Copy, and Paste).
Drag and drop in Java applications is similar to dragging behavior on other platforms. Users press mouse button 1 while the pointer is over a source object and then drag the object by moving the pointer while holding down the mouse button. To drop the object, users release the button when the pointer is over a suitable destination. A successful drop triggers an action that depends on the nature of the source and destination. If the drag source is part of a range selection, the entire selection (for example, several file icons or a range of text) is dragged. To cancel a drag-and-drop operation after it has started, users drop the object over an invalid destination or press the Escape key.
Provide the user with feedback that a drag operation is in progress by changing the shape of the pointer when the drag is initiated. Use different pointers to distinguish operations (such as copying or moving).
Provide destination feedback so users know where the dragged object can be dropped. Use one or both of the following methods to provide destination feedback:
Java objects are specified by their MIME (Multipurpose Internet Mail Extensions) types, and the Java TM runtime environment automatically translates back and forth between MIME types and system-native types as needed. As an object is dragged over potential targets, each potential target can query the drag source to obtain a list of available data types and then compare that with the list of data types that it can accept. For example, when dragging a range of text, the source might be able to deliver the text in a number of different encodings such as plain text, styled text, or HTML text. If there is a match in data types, potential targets should be highlighted as the pointer passes over them to indicate that they can accept the dragged object.
|Java Look and Feel Design Guidelines, second edition.
Copyright 2001. Sun Microsystems, Inc. All Rights Reserved.