Solved

Drag and Drop- showing image when dragging

Posted on 2001-07-31
9
575 Views
Last Modified: 2006-11-17
how do i show a custom image when i am dragging??

heres is a sample of my code
public class CurrentObjectsLabel extends JLabel
    implements DragSourceListener, DragGestureListener    {

  DragSource dragSource = null;
  java.awt.Image image2 = null;
 
  public CurrentObjectsLabel(String name,Icon image,int value) {
    super(name,image,value);
    dragSource = new DragSource();
    dragSource.createDefaultDragGestureRecognizer( this, DnDConstants.ACTION_MOVE, this);
    loadImage();
  }

  public void dragGestureRecognized( DragGestureEvent event) {
       String name = getText();
     System.out.println("Moving oject "+name);
     StringSelection text = new StringSelection(name);
     Point p = new Point(0,0);
        dragSource.startDrag (event,DragSource.DefaultMoveDrop,image2,p,text, this);
  }

 i havent tried using the dragSource.createDefaultDragGestureRecongizer(java.awt.dnd.peer.DragSourceContextPeer dscp, DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)

method because im new to the whole DnD package and wouldnt know where to start for creating a DragSourceContextPeer!!

if anyone can show me some code as to how its done it would be a great help!!
thanks in advance!!

J.B
0
Comment
Question by:j_baxter99
  • 4
  • 3
  • 2
9 Comments
 
LVL 92

Expert Comment

by:objects
Comment Utility
If your target environment is Windows then unfortunately I don't think you can.
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
What your doing looks correct (specifying the image in startDrag) so I'm guessing your on a Windows platform.

The problem is apparently caused by MS.

0
 
LVL 15

Expert Comment

by:ozymandias
Comment Utility
You just specify an Icon in the startDrag method.
Here is the code :

public void dragGestureRecognized(DragGestureEvent dge){
    ImageIcon icon = new ImageIcon("custom.gif");
    Toolkit tk = this.getToolkit();
    Cursor cursor = tk.createCustomCursor(icon.getImage(), new Point(0,0), "cursor");
    dragSource.startDrag(dge, cursor, ti, this);
}

You just need to specify the image you want to use in :

    ImageIcon icon = new ImageIcon("custom.gif");

instead of "custom.gif

0
 
LVL 15

Expert Comment

by:ozymandias
Comment Utility
NB : you can use any string instead of "cursor".
The Point is the hotspot of the cursor, i.e. the active bit of the cursor.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 15

Accepted Solution

by:
ozymandias earned 75 total points
Comment Utility
Sorry I should have said you specify a cursor, not an icon.

In the startDrag method the DragSource.DefaultMoveDrop object is the cursor that will be used and it is the default drag cursor for the platform. You can replace it with any cursor of your choice.
0
 

Author Comment

by:j_baxter99
Comment Utility
pretty **** that you cant do it on windows!!!

cheers lads!
0
 
LVL 15

Expert Comment

by:ozymandias
Comment Utility
You can do it on windows.
The code I posted works fine on windows.
Or at least it works fine on my Windows machine which is NT4.
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
Cursors work, drag images don't.
0
 

Author Comment

by:j_baxter99
Comment Utility
sorry , i meant the images on windows!(not cursor)
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
java continue statement 10 71
JDeveloper 12c for 32 bit 4 34
bitbucket vs gitbucket 3 29
eclipse compiler vs Installed JREs option 3 36
For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now