Drag and drop probleme java

Bonjours
sa fait 4 jours et moi avec les cours et tuto pour essai de comprendre se fameux drag and drop une fois j ai compris un peux j ai essai de implémenter une petite application mais elle me retourne une erreur de type

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at DragandDrop.DragAndDropListener.mousePressed(DragAndDropListener.java:27)
at java.awt.Component.processMouseEvent(Unknown Source)


dans l instruction suivante (en gras)
  public void mousePressed(MouseEvent e) { 
       CartePuce cp= (CartePuce) e.getSource(); 
     TransferHandler h=cp.getTransferHandler(); 
/*j ai pas implémentes getTransferHandler dans ma classe CartePuce qui hérite de Jcompment */ 
     h.exportAsDrag(cp, e,   TransferHandler.COPY); 
        //e.consume(); 
            
  }

j ai de question
1)vous avez une idée du problème
2)dans tous les tuto il y a un drag and drop du ou vers un jtextfild moi je veux faire d un jcompent vers un jcompent diffèrent je veux savoir la principale fonction qui dis a la source tu dois transmettre des donné et au récepteur tu dois recevoir les donné

et merci a vous pour votre aide
très cordialement

2 réponses

  1. Modérateur
    salut

    CartePuce cp= (CartePuce) e.getSource();

    tu es certain que la source est un objet de type cartepuce ????

    Je crois que le problème vient de là. Null pointer exception signifie qu'il n'y a pas d'instanciation.
    1. tiens c est le code de la classe cartePuce

      package DragandDrop; 
      
      
       import java.awt.Dimension; 
       import java.awt.Graphics; 
       import java.awt.Image; 
       import java.io.File; 
       import java.io.IOException; 
      import javax.imageio.ImageIO; 
      import javax.swing.JComponent; 
      
         
       public class CartePuce extends JComponent { 
         
        private String Num="192-1-25-21"; 
        private String Nom="Mr.snoop dog"; 
        public CartePuce(String num,String nom) 
        { 
         this.Num=num; 
         this.Nom=nom; 
        this.setMinimumSize(new Dimension(198,125)); 
        } 
         
         
        public void enableDrag() { 
             
               addMouseListener(new DragAndDropListener()); 
           } 
        public void setNom(String nom) { 
                
               this.Nom=nom; 
           } 
      
           
           public void setNum(String num) { 
                
              this.Num=num; 
           } 
         public String getNom() { 
                
               return Nom; 
           } 
      
           
           public String getNum() { 
                
               return Num; 
           } 
          
         
           public CartePuce getCartePuce() { 
            CartePuce cp = new CartePuce(Num, Nom); 
            setTransferHandler(new CartePuceTransferHandler()); 
               return cp; 
           }   
        public void paintComponent(Graphics g){ 
                       try { 
                               Image img = ImageIO.read(new File("carte.jpg")); 
                               g.drawImage(img, 0, 0,this); 
                             
                        
                       } catch (IOException e) { 
                               // TODO Auto-generated catch block 
                              g.drawString(this.Num, 30, 100); 
                              g.drawString(this.Nom, 20, 150); 
                                   
                               
                               e.printStackTrace(); 
                       } 
                        
               }                
       }


      tu vois l erreurs
      et merci pour ton aide