Drag and Drop an image

Can anyone recommend me a good tutorial on how to drag and drop or even resize an image in a panel ?

I'm back.
I wrote a 2 classes appli that allow to move and resize images displayed in a panel.
The first class is the most interesting one. It describes an object which extends Rectangle and manage an Image. This class names TransformableImage extends Rectangle because we need to know the bounds of the rectangle, where the image is contained in, to allow mouse interactions through the panel.
The behavior we want is to change the kind of cursors according to the position of the mouse on the panel :
if the mouse is out of any images the cursor is the default one. If the cursor is on an image, it can be a move cursor in the center of the image or one of the resize cursors if the mouse is on the border of the image.
Here is the class :
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
public final class TransformableImage extends Rectangle {
     public static final int MOVE = 0;
     public static final int RESIZE_TOP = 10;
     public static final int RESIZE_BOTTOM = 20;
     public static final int RESIZE_RIGHT = 1;
     public static final int RESIZE_LEFT = 2;
     public static final int RESIZE_TOP_RIGHT_CORNER = 11;
     public static final int RESIZE_TOP_LEFT_CORNER = 12;
     public static final int RESIZE_BOTTOM_RIGHT_CORNER = 21;
     public static final int RESIZE_BOTTOM_LEFT_CORNER = 22;
     public static final int BORDER_THICKNESS = 5;
     public static final int MIN_THICKNESS = BORDER_THICKNESS*2;
     private static final Color borderColor = Color.black;
     private Image image;
     * Create an TransformableImage from the image file filename.
     * The TransformableImage bounds (inherited from the class Rectangle) are setted to the corresponding values.
     public TransformableImage(String filename) {
          ImageIcon ic = new ImageIcon(filename);
          image = ic.getImage();
          setBounds(0,0,ic.getIconWidth(), ic.getIconHeight());
     * Draw the image rescaled to fit the bounds.
     * A black rectangle is drawn around the image.
     public final void draw(Graphics2D g, ImageObserver observer) {
          Color oldColor = g.getColor();
          g.setColor(borderColor);
          g.drawImage(image, x, y, width, height, observer);
          g.draw(this);
          g.setColor(oldColor);
     * Return an int corresponding to the transformation available according to the mouse location on the image.
     * If the point p is in the border, with a thickness of BORDER_THICKNESS, around the image, the corresponding
     * transformation is returned (RESIZE_TOP, ..., RESIZE_BOTTOM_LEFT_CORNER).
     * If the point p is located in the center of the image (i.e. out of the border), the MOVE transformation is returned.
     * We allways suppose that p is contained in the image bounds.
     public final int getTransformation(Point p) {
          int px = p.x;
          int py = p.y;
          int transformation = 0;
          if (py<(y+BORDER_THICKNESS)) {
               transformation += RESIZE_TOP;
          else
          if (py>(y+height-BORDER_THICKNESS-1)) {
               transformation += RESIZE_BOTTOM;
          if (px<(x+BORDER_THICKNESS)) {
               transformation += RESIZE_LEFT;
          else
          if (px>(x+width-BORDER_THICKNESS-1)) {
               transformation += RESIZE_RIGHT;
          return(transformation);
     * Move the left side of the image, verifying that the width is > to the MIN_THICKNESS.
     public final void moveX1(int px) {
          int x1 = x+width;
          if (px>x1-MIN_THICKNESS) {
               x = x1-MIN_THICKNESS;
               width = MIN_THICKNESS;
          else {
               width += (x-px);
               x = px;               
     * Move the right side of the image, verifying that the width is > to the MIN_THICKNESS.
     public final void moveX2(int px) {
          width = px-x;
          if (width<MIN_THICKNESS) {
               width = MIN_THICKNESS;
     * Move the top side of the image, verifying that the height is > to the MIN_THICKNESS.
     public final void moveY1(int py) {
          int y1 = y+height;
          if (py>y1-MIN_THICKNESS) {
               y = y1-MIN_THICKNESS;
               height = MIN_THICKNESS;
          else {
               height += (y-py);
               y = py;               
     * Move the bottom side of the image, verifying that the height is > to the MIN_THICKNESS.
     public final void moveY2(int py) {
          height = py-y;
          if (height<MIN_THICKNESS) {
               height = MIN_THICKNESS;
     * Apply a given transformation with the given Point to the image.
     * The shift values dx and dy are needed for move tho locate the image at the same relative position from the cursor (p).
     public final void transform(Point p, int transformationType, int dx, int dy) {
          int px = p.x;
          int py = p.y;
          switch (transformationType) {
               case MOVE : x = px-dx; y = py-dy;
                    break;
               case RESIZE_TOP : moveY1(py);
                    break;
               case RESIZE_BOTTOM : moveY2(py);
                    break;
               case RESIZE_LEFT : moveX1(px);
                    break;
               case RESIZE_RIGHT : moveX2(px);
                    break;
               case RESIZE_TOP_LEFT_CORNER : moveX1(px);moveY1(py);
                    break;
               case RESIZE_TOP_RIGHT_CORNER : moveX2(px);moveY1(py);
                    break;
               case RESIZE_BOTTOM_LEFT_CORNER : moveX1(px);moveY2(py);
                    break;
               case RESIZE_BOTTOM_RIGHT_CORNER : moveX2(px);moveY2(py);
                    break;
               default :
}And now, we need to create the panel where we are going to draw the images and interact with them with the mouse. In fact we need a paintComponent method used to draw the images and a Mouse(Motion)Listener to manage the required mouse events.
We also have to create a method to set the convenient cursor according to tha position of the mouse over the images.
Here is the class :
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class ImagePanel extends JComponent {
     private static final Cursor DEFAULT_CURSOR = new Cursor(Cursor.DEFAULT_CURSOR);
     private static final Cursor MOVE_CURSOR = new Cursor(Cursor.MOVE_CURSOR);
     private static final Cursor VERTICAL_RESIZE_CURSOR = new Cursor(Cursor.N_RESIZE_CURSOR);
     private static final Cursor HORIZONTAL_RESIZE_CURSOR = new Cursor(Cursor.W_RESIZE_CURSOR);
     private static final Cursor NW_SE_RESIZE_CURSOR = new Cursor(Cursor.NW_RESIZE_CURSOR);
     private static final Cursor NE_SW_RESIZE_CURSOR = new Cursor(Cursor.NE_RESIZE_CURSOR);
     public Vector images;
     * Create an ImagePanel with two images in.
     * A MouseHandler instance is added as mouse listener and mouse motion listener.
     public ImagePanel() {
          images = new Vector();
          images.add(new TransformableImage("image1.gif"));
          images.add(new TransformableImage("image2.gif"));
          setPreferredSize(new Dimension(600,600));
          MouseHandler mh = new MouseHandler();
          addMouseListener(mh);
          addMouseMotionListener(mh);
     * Simply paint all the images contained in the Vector images, calling their method draw(Graphics2D, ImageObserver).
     public void paintComponent(Graphics g) {
          Graphics2D g2D = (Graphics2D)g;
          for (int i = images.size()-1; i>=0; i--) {     
               ((TransformableImage)images.get(i)).draw(g2D, this);
     * Inner class defining the behavior of the mouse.
     final class MouseHandler extends MouseInputAdapter {
          private TransformableImage draggedImage;
          private int transformation;
          private int dx, dy;
          public void mouseMoved(MouseEvent e) {
               Point p = e.getPoint();
               TransformableImage image = getImageAt(p);
               if (image != null) {
                    transformation = image.getTransformation(p);
                    setConvenientCursor(transformation);
               else {
                    setConvenientCursor(-1);
          public void mousePressed(MouseEvent e) {
               Point p = e.getPoint();
               draggedImage = getImageAt(p);
               if (draggedImage!=null) {
                    dx = p.x-draggedImage.x;
                    dy = p.y-draggedImage.y;
          public void mouseDragged(MouseEvent e) {
               if (draggedImage==null) {
                    return;
               Point p = e.getPoint();
               repaint(draggedImage.x,draggedImage.y,draggedImage.width+1,draggedImage.height+1);
               draggedImage.transform(p, transformation,dx,dy);
               repaint(draggedImage.x,draggedImage.y,draggedImage.width+1,draggedImage.height+1);
          public void mouseReleased(MouseEvent e) {
               Point p = e.getPoint();
               draggedImage = null;
     * Utility method used to get the image located at a Point p.
     * Returns null if there is no image at this point.
     private final TransformableImage getImageAt(Point p) {
          TransformableImage image = null;
          for (int i = 0, n = images.size(); i<n; i++) {     
               image = (TransformableImage)images.get(i);
               if (image.contains(p)) {
                    return(image);
          return(null);
     * Sets the convenient cursor according the the transformation (i.e. the position of the mouse over the image).
     private final void setConvenientCursor(int transfo) {
          Cursor currentCursor = getCursor();
          Cursor newCursor = null;
          switch (transfo) {
               case TransformableImage.MOVE : newCursor = MOVE_CURSOR;
                    break;
               case TransformableImage.RESIZE_TOP : newCursor = VERTICAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_BOTTOM : newCursor = VERTICAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_LEFT : newCursor = HORIZONTAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_RIGHT : newCursor = HORIZONTAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_TOP_LEFT_CORNER : newCursor = NW_SE_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_TOP_RIGHT_CORNER : newCursor = NE_SW_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_BOTTOM_LEFT_CORNER : newCursor = NE_SW_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_BOTTOM_RIGHT_CORNER : newCursor = NW_SE_RESIZE_CURSOR;
                    break;
               default : newCursor = DEFAULT_CURSOR;
          if (newCursor != null && currentCursor != newCursor) {
               setCursor(newCursor);
     public static void main(String[] args) {
          JFrame frame = new JFrame("Test transformable images");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.getContentPane().add(new ImagePanel(), BorderLayout.CENTER);
          frame.pack();
          frame.setVisible(true);
}If you want more information tell me.
------- Here is the unformatted version -----
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
public final class TransformableImage extends Rectangle {
     public static final int MOVE = 0;
     public static final int RESIZE_TOP = 10;
     public static final int RESIZE_BOTTOM = 20;
     public static final int RESIZE_RIGHT = 1;
     public static final int RESIZE_LEFT = 2;
     public static final int RESIZE_TOP_RIGHT_CORNER = 11;
     public static final int RESIZE_TOP_LEFT_CORNER = 12;
     public static final int RESIZE_BOTTOM_RIGHT_CORNER = 21;
     public static final int RESIZE_BOTTOM_LEFT_CORNER = 22;
     public static final int BORDER_THICKNESS = 5;
     public static final int MIN_THICKNESS = BORDER_THICKNESS*2;
     private static final Color borderColor = Color.black;
     private Image image;
     * Create an TransformableImage from the image file filename.
     * The TransformableImage bounds (inherited from the class Rectangle) are setted to the corresponding values.
     public TransformableImage(String filename) {
          ImageIcon ic = new ImageIcon(filename);
          image = ic.getImage();
          setBounds(0,0,ic.getIconWidth(), ic.getIconHeight());
     * Draw the image rescaled to fit the bounds.
     * A black rectangle is drawn around the image.
     public final void draw(Graphics2D g, ImageObserver observer) {
          Color oldColor = g.getColor();
          g.setColor(borderColor);
          g.drawImage(image, x, y, width, height, observer);
          g.draw(this);
          g.setColor(oldColor);
     * Return an int corresponding to the transformation available according to the mouse location on the image.
     * If the point p is in the border, with a thickness of BORDER_THICKNESS, around the image, the corresponding
     * transformation is returned (RESIZE_TOP, ..., RESIZE_BOTTOM_LEFT_CORNER).
     * If the point p is located in the center of the image (i.e. out of the border), the MOVE transformation is returned.
     * We allways suppose that p is contained in the image bounds.
     public final int getTransformation(Point p) {
          int px = p.x;
          int py = p.y;
          int transformation = 0;
          if (py<(y+BORDER_THICKNESS)) {
               transformation += RESIZE_TOP;
          else
          if (py>(y+height-BORDER_THICKNESS-1)) {
               transformation += RESIZE_BOTTOM;
          if (px<(x+BORDER_THICKNESS)) {
               transformation += RESIZE_LEFT;
          else
          if (px>(x+width-BORDER_THICKNESS-1)) {
               transformation += RESIZE_RIGHT;
          return(transformation);
     * Move the left side of the image, verifying that the width is > to the MIN_THICKNESS.
     public final void moveX1(int px) {
          int x1 = x+width;
          if (px>x1-MIN_THICKNESS) {
               x = x1-MIN_THICKNESS;
               width = MIN_THICKNESS;
          else {
               width += (x-px);
               x = px;               
     * Move the right side of the image, verifying that the width is > to the MIN_THICKNESS.
     public final void moveX2(int px) {
          width = px-x;
          if (width<MIN_THICKNESS) {
               width = MIN_THICKNESS;
     * Move the top side of the image, verifying that the height is > to the MIN_THICKNESS.
     public final void moveY1(int py) {
          int y1 = y+height;
          if (py>y1-MIN_THICKNESS) {
               y = y1-MIN_THICKNESS;
               height = MIN_THICKNESS;
          else {
               height += (y-py);
               y = py;               
     * Move the bottom side of the image, verifying that the height is > to the MIN_THICKNESS.
     public final void moveY2(int py) {
          height = py-y;
          if (height<MIN_THICKNESS) {
               height = MIN_THICKNESS;
     * Apply a given transformation with the given Point to the image.
     * The shift values dx and dy are needed for move tho locate the image at the same relative position from the cursor (p).
     public final void transform(Point p, int transformationType, int dx, int dy) {
          int px = p.x;
          int py = p.y;
          switch (transformationType) {
               case MOVE : x = px-dx; y = py-dy;
                    break;
               case RESIZE_TOP : moveY1(py);
                    break;
               case RESIZE_BOTTOM : moveY2(py);
                    break;
               case RESIZE_LEFT : moveX1(px);
                    break;
               case RESIZE_RIGHT : moveX2(px);
                    break;
               case RESIZE_TOP_LEFT_CORNER : moveX1(px);moveY1(py);
                    break;
               case RESIZE_TOP_RIGHT_CORNER : moveX2(px);moveY1(py);
                    break;
               case RESIZE_BOTTOM_LEFT_CORNER : moveX1(px);moveY2(py);
                    break;
               case RESIZE_BOTTOM_RIGHT_CORNER : moveX2(px);moveY2(py);
                    break;
               default :
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class ImagePanel extends JComponent {
     private static final Cursor DEFAULT_CURSOR = new Cursor(Cursor.DEFAULT_CURSOR);
     private static final Cursor MOVE_CURSOR = new Cursor(Cursor.MOVE_CURSOR);
     private static final Cursor VERTICAL_RESIZE_CURSOR = new Cursor(Cursor.N_RESIZE_CURSOR);
     private static final Cursor HORIZONTAL_RESIZE_CURSOR = new Cursor(Cursor.W_RESIZE_CURSOR);
     private static final Cursor NW_SE_RESIZE_CURSOR = new Cursor(Cursor.NW_RESIZE_CURSOR);
     private static final Cursor NE_SW_RESIZE_CURSOR = new Cursor(Cursor.NE_RESIZE_CURSOR);
     public Vector images;
     * Create an ImagePanel with two images in.
     * A MouseHandler instance is added as mouse listener and mouse motion listener.
     public ImagePanel() {
          images = new Vector();
          images.add(new TransformableImage("image1.gif"));
          images.add(new TransformableImage("image2.gif"));
          setPreferredSize(new Dimension(600,600));
          MouseHandler mh = new MouseHandler();
          addMouseListener(mh);
          addMouseMotionListener(mh);
     * Simply paint all the images contained in the Vector images, calling their method draw(Graphics2D, ImageObserver).
     public void paintComponent(Graphics g) {
          Graphics2D g2D = (Graphics2D)g;
          for (int i = images.size()-1; i>=0; i--) {     
               ((TransformableImage)images.get(i)).draw(g2D, this);
     * Inner class defining the behavior of the mouse.
     final class MouseHandler extends MouseInputAdapter {
          private TransformableImage draggedImage;
          private int transformation;
          private int dx, dy;
          public void mouseMoved(MouseEvent e) {
               Point p = e.getPoint();
               TransformableImage image = getImageAt(p);
               if (image != null) {
                    transformation = image.getTransformation(p);
                    setConvenientCursor(transformation);
               else {
                    setConvenientCursor(-1);
          public void mousePressed(MouseEvent e) {
               Point p = e.getPoint();
               draggedImage = getImageAt(p);
               if (draggedImage!=null) {
                    dx = p.x-draggedImage.x;
                    dy = p.y-draggedImage.y;
          public void mouseDragged(MouseEvent e) {
               if (draggedImage==null) {
                    return;
               Point p = e.getPoint();
               repaint(draggedImage.x,draggedImage.y,draggedImage.width+1,draggedImage.height+1);
               draggedImage.transform(p, transformation,dx,dy);
               repaint(draggedImage.x,draggedImage.y,draggedImage.width+1,draggedImage.height+1);
          public void mouseReleased(MouseEvent e) {
               Point p = e.getPoint();
               draggedImage = null;
     * Utility method used to get the image located at a Point p.
     * Returns null if there is no image at this point.
     private final TransformableImage getImageAt(Point p) {
          TransformableImage image = null;
          for (int i = 0, n = images.size(); i<n; i++) {     
               image = (TransformableImage)images.get(i);
               if (image.contains(p)) {
                    return(image);
          return(null);
     * Sets the convenient cursor according the the transformation (i.e. the position of the mouse over the image).
     private final void setConvenientCursor(int transfo) {
          Cursor currentCursor = getCursor();
          Cursor newCursor = null;
          switch (transfo) {
               case TransformableImage.MOVE : newCursor = MOVE_CURSOR;
                    break;
               case TransformableImage.RESIZE_TOP : newCursor = VERTICAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_BOTTOM : newCursor = VERTICAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_LEFT : newCursor = HORIZONTAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_RIGHT : newCursor = HORIZONTAL_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_TOP_LEFT_CORNER : newCursor = NW_SE_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_TOP_RIGHT_CORNER : newCursor = NE_SW_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_BOTTOM_LEFT_CORNER : newCursor = NE_SW_RESIZE_CURSOR;
                    break;
               case TransformableImage.RESIZE_BOTTOM_RIGHT_CORNER : newCursor = NW_SE_RESIZE_CURSOR;
                    break;
               default : newCursor = DEFAULT_CURSOR;
          if (newCursor != null && currentCursor != newCursor) {
               setCursor(newCursor);
     public static void main(String[] args) {
          JFrame frame = new JFrame("Test transformable images");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.getContentPane().add(new ImagePanel(), BorderLayout.CENTER);
          frame.pack();
          frame.setVisible(true);
Denis

Similar Messages

  • When i drag and drop an image on my site. it gives the following error. "Unable to access local files due to browser security settings. To overcome this, follo"

    I am using the firefox version 17 and when i drag and drop an image on my website. It gives me the following error.
    Unable to access local files due to browser security settings. To overcome this, follow these steps: (1) Enter "about:config" in the URL field; (2) Right click and select New->Boolean; (3) Enter "signed.applets.codebase_principal_support" (without the quotes) as a new preference name; (4) Click OK and try loading the file again. Or go to the homepage for a link to the tutorial on how to do it.
    I have completed the above steps and it is still showing the same error message. Any help would be highly appreciated.
    Thanks.

    Thanks kumars ,
    I have a specific drag and drop area on our website. This works fine for all earlier releases of Firefox after these security settings
    "(1) Enter "about:config" in the URL field; (2) Right click and select New->Boolean; (3) Enter "signed.applets.codebase_principal_support" (without the quotes) as a new preference name; (4) Click OK and try loading the file again."
    Bust these settings not work for me in Firefox 17.
    Yes the drag and drop functionality is java script based and i am not using any script blocker addons.

  • Which Listener I should use if I drag and Drop an image/icon into a JPanel?

    Dar Friends:
    Happy new year.
    I try to drag and Drop an image/icon into a JPanel, and hope I can immediately detect it after DND,
    Which Listener I should use in this JPanel if I drag and Drop an image/icon into a JPanel??
    Thanks

    Thank camickr .
    I can dnd an image into a JPanel called JPanelOld already, I hope to use another JPanel or JTree to listen to any Dropped Image in JPanelOld later on so I can take some action in another JPanel or JTree.
    so what kind of Listener I should use for my purpose??
    where to add this Listeners??
    Happy New Year.

  • How to drag and drop href image from webbrowser to office using vsto c# wpf?

    I want to drag and drop href images from web browser to office using C# wpf. Is it possible to drag href images ? give me the solution

    Hi,
    Are you developing an Office Add-in application? Do you mean you hold a wpf Web Browser control in the Office Add-in project?
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • BUG - Drag and drop an image, only working at the 2nd try

    I use the last version of JDeveloper : 11g R1 : 11.1.1.2.0
    I try to drag and drop an image in a facet of a panelsplitter.
    Once the page is loaded, the first time I try to drag the image, it does not work : the image does not follow the mouse.
    When I try to drag the image again, then it works : the image follow the mouse
    So I don't think it's related to the destination/target.
    I feel it's so simple, since it just requires to add <af:componentDragSource/> inside <af:image/>
    that if it does not work, it can only be a bug in the functionality offered by ADF ...
    Or maybe there is something wrong with the generation of the page ?
    I get this message in blue in the "running log of WebLogic" :
    <FormRenderer><setupEncodingContext> Multiple forms detected on viewId: /myPage.jspx. Rich client currently has some limitations in dealing with multiple forms.
    Please note that I use jsp:include inside f:subview to include fragments (.jsff) so that the source and the destination are not in the same file, the source in a .jsff while the destination is on the main .jspx
    The code related to the drag and drop :
    <af:form id="form">
    <af:panelSplitter orientation="vertical" splitterPosition="70" id="psHeader" clientComponent="true">
    <af:panelAccordion id="paPref" discloseNone="true" styleClass="fullSize">
    <af:showDetailItem id="sdiTemp" text="Templates">
    <af:panelBox>
    <af:panelGroupLayout id="pglTemp" layout="scroll">
    <af:panelList id="plTemp" rows="2">
    <af:image id="imTemp2up" source="/images/anImage.jpg" inlineStyle="" shortDesc="...">
    <af:componentDragSource/>
    </af:image>
    <f:facet name="second">
    <af:dropTarget dropListener="#{dropHandler.handleComponentMove}" actions="MOVE">
    <af:dataFlavor flavorClass="javax.faces.component.UIComponent"/>
    </af:dropTarget>
    Any idea ?
    Thanks in advance,
    JP

    Hi,
    no bug that I can detect here as it works for me with the same setup. How likely is it that the image is too small so that you don't grab it probably the first time?
    Frank

  • Is there any view where I can drag-and-drop an image to another app?

    I'm new to LR3.4.   I'm building books using Luminix PhotoFusion and used to be able to drag-and-drop images directly from PSE5 into Luminix.   With PSE8, that capability was lost and I had to bring up the file properties, go to the containing folder, and drag-and-drop from there.   This greatly slows down the process.   I don't want to export the images because then I have multiple copies to maintain.  
    Does anyone have suggestions for a workflow for this?   I haven't looked into publishing yet but that also seems to replicate like to Flickr.
    Thanks

    I've tried drag-and-drop from the grid, filmstrip, etc.   I get the universal circle with a slash.... no go.  I've tried dragging to WORD, PowerPoint, IrfanView, PhotoFusion, and all have the same result.
    I'm running Win7 64-bit.

  • Can I drag and drop an image into Photoshop

    hello, as a first time user ive using photoshop on a mac at school. i just downloaded photoshop on my pc. i cant insert my image onto photoshop. the way we do it in class is drag the image to the ps icon and it will open with the pic. please help and if theres anything i need to know please inform me also. thanks for all the help!!! ps im also learning how to use intuos tablet with it

    Welcome to the forum. I don't own a mac, so I may not be as accurate as I would like.
    It may require photoshop to already be running for the drag and drop to work. Try minimizing photoshop then drag and drop.

  • How to drag and drop an Image between two JPanels inside a Split Pane

    I'm tring to do that, and my actual problem is as follows:
    I drag the Image from the bottomPanel but I can't drop it in the topPanel, I'm using this classes:
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    import java.awt.dnd.*;
    import java.awt.datatransfer.*;
    import java.awt.image.*;
    public class MoveableComponentsContainer extends JSplitPane {     
         public DragSource dragSource;
         public DropTarget dropTarget;
    public JPanel topPanel = new JPanel();
    public JPanel bottomPanel = new JPanel();
         public int ancho;
    public int alto;
    public MoveableLabel lab1,lab2,lab3,lab4;
    public Icon ico1, ico2,ico3,ico4;
    private static BufferedImage buffImage = null; //buff image
         private static Point cursorPoint = new Point();
    public int getMaximumDividerLocation() {
    return ( ( int ) ( alto * .85 ) );
    public int getMinimumDividerLocation() {
    return( ( int ) ( alto * .85 ) );
         public MoveableComponentsContainer(int Weight, int Height ) {
    alto = Height;
    ancho = Weight;
    setOrientation( VERTICAL_SPLIT);
    setDividerSize(2);
    getMaximumDividerLocation();
    getMinimumDividerLocation();
    setPreferredSize(new Dimension( (int) ( Weight * .99 ), (int) ( Height * .94 ) ) );
    setDividerLocation( getMaximumDividerLocation() );
    System.out.println( " getDividerLocation() = " + getDividerLocation() );
    topPanel.setName("topPanel");
    bottomPanel.setName("bottomPanel");
    bottomPanel.setPreferredSize( new Dimension( (int) ( Weight * .99 ), (int) ( ( Height * .94 ) * .15 ) ) );
    bottomPanel.setMaximumSize( new Dimension( (int) ( Weight * .99 ), (int) ( ( Height * .94 ) * .15 ) ) );
    bottomPanel.setMinimumSize( new Dimension( (int) ( Weight * .99 ), (int) ( ( Height * .94 ) * .15 ) ) );
    topPanel. setPreferredSize( new Dimension( (int) ( Weight * .99 ), (int) ( ( Height * .94 ) * .85 ) ) );
    topPanel. setMaximumSize( new Dimension( (int) ( Weight * .99 ), (int) ( ( Height * .94 ) * .85 ) ) );
    topPanel. setMinimumSize( new Dimension( (int) ( Weight * .99 ), (int) ( ( Height * .94 ) * .85 ) ) );
    bottomPanel.setEnabled(true);
    bottomPanel.setVisible(true);
    bottomPanel.setBackground( new Color( 57,76,123 ) );
    topPanel. setEnabled(true);
    topPanel. setVisible(true);
    topPanel. setBackground( new Color( 57,76,123 ) );
    setBottomComponent( bottomPanel );
    setTopComponent( topPanel );
    setOneTouchExpandable( false );
    bottomPanel.setBorder(BorderFactory.createTitledBorder("Drag and Drop Test"));
              setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white, Color.gray));
    bottomPanel.setLayout( new FlowLayout() );
    topPanel.setLayout(new FlowLayout());
              addMoveableComponents();
         private void addMoveableComponents() {
    ico1 = new ImageIcon( "/usr/local/installers/java/lll/DnD/switchm.gif");
    lab1 = new MoveableLabel("Centrales", ico1, topPanel );
    lab1.setName("labelOne");
    bottomPanel.add( lab1 );
              lab2 = new MoveableLabel("Destinos", ico1, topPanel);
    lab2.setName("labelTwo");
              bottomPanel.add( lab2 );
              lab3 = new MoveableLabel("Registros", ico1, topPanel );
    lab3.setName("labelThree");
              bottomPanel.add( lab3 );
              lab4 = new MoveableLabel("Parametros", ico1, topPanel);
    lab4.setName("labelFour");
              bottomPanel.add( lab4 );
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    import java.awt.dnd.*;
    import java.awt.datatransfer.*;
    public class MoveableLabel extends JLabel implements Transferable {
    final static int FILE = 0;
    final static int STRING = 1;
    final static int IMAGE = 2;
    DataFlavor flavors[] = { DataFlavor.javaFileListFlavor,
    DataFlavor.stringFlavor,
    DataFlavor.imageFlavor };
    public JPanel PanelDestino;
    public JPanel PanelOrigen;
    public DropTarget dropTarget;
    public DropTargetListener dropTargetLis;
         private static final Border border = BorderFactory.createLineBorder(Color.black, 1);
         public MoveableLabel(String text, Icon ic, JPanel DestPanel) {
              super( text, ic, TRAILING);
    PanelDestino = DestPanel;
              MouseEventForwarder forwarder = new MouseEventForwarder();
              addMouseListener(forwarder);
              addMouseMotionListener(forwarder);
              setBorder(border);
              setBounds(0,0,50,100);
              setOpaque(true);
    setTransferHandler(new TransferHandler("text"));
    setBackground( new Color( 57,76,123 ) );
    public synchronized DataFlavor[] getTransferDataFlavors() {
         return flavors;
    public boolean isDataFlavorSupported(DataFlavor flavor) {
    boolean b = false;
    b |= flavor.equals(flavors[ FILE ]);
    b |= flavor.equals(flavors[STRING]);
    b |= flavor.equals(flavors[ IMAGE]);
    return (b);
    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, java.io.IOException {
    return this;
         final class MouseEventForwarder extends MouseInputAdapter {
              public void mousePressed(MouseEvent e) {
                   Container parent = getParent();
    Container brother = (Container)PanelDestino;
    System.out.println( "Parent 1 = " + parent.getName() );
    System.out.println( "Destino 1 = " + brother.getName() );
    JComponent c = (JComponent) e.getSource();
    System.out.println( "getsource() = " + c.getName() );
    TransferHandler th = c.getTransferHandler();
    th.exportAsDrag( c, e, TransferHandler.COPY_OR_MOVE );
    dropTarget = getDropTarget();
    System.out.println( "dropTarget.getComponent().getName() = " + dropTarget.getComponent().getName() );
    for ( int a=0; a < parent.getComponentCount(); a++ ) {
    parent.getComponent( a ).setEnabled( false );
    brother.setDropTarget( dropTarget );
    System.out.println( "dropTarget.getComponent().getName() = " + dropTarget.getComponent().getName() );
              public void mouseReleased(MouseEvent e) {
                   Container parent = getParent();
    Container brother = PanelDestino;
    System.out.println( "Parent 2 = " + parent.getName() );
    System.out.println( "Destino 2 = " + PanelDestino.getName() );
    parent.setEnabled( true );
    brother.setEnabled( false );
    for ( int a=0; a < parent.getComponentCount(); a++ ) {
    parent.getComponent( a ).setEnabled( true );
    import java.awt.*;
    import javax.swing.*;
    public class TestDragComponent extends JFrame {
         public TestDragComponent() {
    super("TestDragComponent");
    Toolkit tk = Toolkit.getDefaultToolkit();
    Dimension dm = new Dimension();
    dm = tk.getScreenSize();
    System.out.println(dm.height);
    System.out.println(dm.width );
    Container cntn = getContentPane();
    cntn.setFont(new Font("Helvetica", Font.PLAIN, 14));
    cntn.add(new MoveableComponentsContainer(dm.width,dm.height));
              pack();
              setVisible(true);
         public static void main(String[] args) {
              new TestDragComponent();

    Ok I found the answer to your problem. If you download the tutorial they have the code there it's in one folder. I hope this helps.
    http://java.sun.com/docs/books/tutorial/

  • Drag-and-drop for image stacks

    I'd like to be able to drag and drop image stacks from one folder to the next. Currently, when I drag and drop it just grabs one of the images from the stack and leaves the others behind.
    I can expand the stack and then drag and drop all of them, but the stack itself is lost--I have to go to the destination directory and re-stack the images.
    Bart

    I've discovered (and its nowhere in the documentation as far as I can see) that if you select the bottom slide in a stack .. ie the bottom left hand corner of the "reperesenation of the lower slides" you can drag and drop the stack(s) in to another folder.
    Unfortunately they don't remain stacked ..Here's another vote for persistent stacks.
    Pete Roberts

  • Drag and drop a image from html page into flex

    how can i drag a image form the html page and drop it into
    the flex application.

    Hi,
    There's no direct support for this. But you could implement
    drag and drop the way you normally would in javascript. Except
    here, on mouseUp over a div encapsulating the object or embed tag
    (the flash object), you'll need to make a call into actionscript
    from javascript indicating that a drag and drop happened.
    For more info, see
    how
    to drag and drop using javascript and
    actionscript
    and javascript communication

  • Drag and drop an image over a JPanel (only change position on same JPanel)

    Hi all,
    there is JPanel added to a JDialog.
    There is a BufferedImage on the JPanel: I need to let the image be dragged and dropped in another position over the same JPanel and read the new position's coordinates.
    (Maybe the image has to be wrapped in a JComponent?)
    Thanks in advance for any suggestions.
    Ludovico

    (Maybe the image has to be wrapped in a JComponent?)Just add the image to a JLabel and add the label to the panel.

  • I can't drag and drop an image into Photoshop CS5

    I don't know what's going on. I've never had this problem before.
    When I try to drag and image into photoshop I get the black circle with a black line through it
    I took of the administrative settings also. I've tried everything, I've uninstalled it then reinstalled it. Nothing. Please help.

    Well yes cleem any photoshop icon, or shortcut, whether its in your start menu, on you desktop....
    careful: this is tricky, if you right click the photoshop icon on your windows 7 taskbar, a new menu opens, you'll have to right click again on the "Photoshop cc" icon, in order to access properties.
    does this make it clear? did it work fine with you? let me know

  • Help me drag and drop my image please

    my image is in JLbel
    i want to MOVE image between JLabel (JPanel too) not COPY
    like the chees game
    but i look at the chess game source in "search"
    it's use JLayer on JFrame
    but i use only JFrame
    can you give me sample
    move image between JLabel
    i think JLayer must have something differ from JFrame

    but i look at the chess game source in "search" it's use JLayer on JFrameYes, thats one approach.
    but i use only JFrame can you give me sample move image between JLabel And you where given the link to the Swing tutorial on using DnD that shows you how to do this.
    So you have two working solutions. Choose the approach you want to use.
    I hope you don't expect us to write the code!

  • Error when dragging and dropping still image into imovie

    I am trying to place some still images into iMovie but when doing so I get the following error message :
    "Import Problem
    The still image file "file name" couldn't be copied as a JPEG image. The clip has been imported, but you won't be able to apply Ken Burns effects to it."
    I really want to be able to apply the ken Burns effect. Can someone help with a fix to get around this problem.
    thanks

    Hi
    Is Your photos .jpeg photos ?
    I would download/buy GraphicConverter™ and convert the photos to .pic and
    then use them.
    Google: GraphicConverter
    Yours Bengt W

  • I am unable to drag and drop image files in a JAVA supposrted site. I have all the lastest versions of softwarte here - everything is up to date.

    I am no longer able to drag and drop image files int this JAVA supported site. It had always worked flawlessly in the past.
    I would open the site, go to Send Files, allow access, fill out the fields and then drag and drop my image files. Now I can only use the ADD (+) button to do so.
    I have the latest versions of OS-X Lion and JAVA installed on my computer
    http://www.clippingprovider.com/CP_II_EU/Welcome.html

    This is the Tech Sheet on the subject:
    Photoshop Help | Managing paths
    It contains this item under Manage Paths:
    When you use a pen or shape tool to create a work path, the new path appears as the work path in the Paths panel. The work path is temporary; you must save it to avoid losing its contents.
    Ok, the red you referred to is a Stoke you added. Then QuickMask is not involved.

Maybe you are looking for

  • Downloading my HP printer to my toshiba laptop

    i have a toshiba laptop with windows 7, my printer is hp photosmart 2570 series, do i need a driver download?

  • Deadlock on RAC

    Hello All, I am using Oracle 10g RAC. I facing some dead locks in the db, I checked the alert log for both instances and i did not find any ORA-00060 error. Is there other ora error to search it inside the alert log to check dead locks for RAC enviro

  • DRAM Clock Settings and SDram Cas latency

     : 8o Just got my KT3 ULTRA 2 Socket A Motherboard. When I turn on the computer, in the POST test it says: DRAM Clock = 266MHz SDRAM Cas Latency = 2 I checked the cmos and the latency is set at 2 , but what about the DRAM Clock? Please help for I am

  • AC 10 MSMP Workflow

    Hello Experts, We are just trying to configure the basic components of Access Control on AC 10. We have configured PSS and when we are trying to configure workflow for access requests we are running into issues. I Just wanted to check what I configur

  • Export data from table with CLOB column

    DB: Oracle10g SQLDeveloper: 1.0 OS: windows xp for sqldeveloper Linux for Oracle db we have a table with two CLOB columns. We want to export the data to either text or csv. But the CLOB columns don't show up in the columns that can be exported. How d