Drag and drop

lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 - 22 mai 2007 à 11:13
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 - 22 mai 2007 à 14:42
Bonjour,
Déjà hier je postais sur ce forum pour un problème du même thème.
Tout d'abord voici ma classe :
/*
* Created on 22 mai 2007
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package cassis.jCassis.gui.spectrum.util;


import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JLabel;
import javax.swing.JPopupMenu;


/**
* @author tamisier
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class LineInfoLabel implements MouseMotionListener {

private transient JPopupMenu popup;



/**
* Constructor makes a new LineInfoPopup invisible.
*/
public LineInfoLabel()
{
super();

popup = new JPopupMenu();


}

/**
* Display the LineInfoPopup when MouseEvent occurs.
* @param event MouseEvent
* @param menuList Menu to display
*/
public void display(final double coordX, final double coordY, final JLabel identification)
{

popup.add(identification);
System.out.println("coordX : " + coordX);
System.out.println("coordY : " + coordY);
// popup.setLocation(Integer.parseInt(String.valueOf(coordX)), Integer.parseInt(String.valueOf(coordY)));
popup.setLocation(500,600);

popup.addMouseMotionListener(this);
popup.setVisible(true);

}

/* (non-Javadoc)
* @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
*/
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
popup.setLocation(e.getX() + popup.getLocationOnScreen().x , e.getY() + popup.getLocationOnScreen().y);

}



/* (non-Javadoc)
* @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
*/
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub

}

}


En fait pour mon MouseDragged je ne comprend pas pourquoi le dragged ne se fait pas correctement (la position avance toujours elle ne recul jamais) alors que si je fais la classe suivante :
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;


// Ce code nécessite qu'une image nommée image.gif soit présente dans le répertoire courant du programme.
public class test3 implements MouseMotionListener{
JFrame fenetre;
JLabel img;

public test3(){
fenetre = new JFrame("test");
fenetre.getContentPane().setLayout(null);
fenetre.setBounds(100,50,500,400);
img=new JLabel("coucou");
img.setSize(50,25);

img.setBounds(40,40,100,100);
img.addMouseMotionListener(this);
fenetre.getContentPane().add(img);
img.setVisible(true);
fenetre.setVisible(true);
}


public void mouseMoved(MouseEvent e) {
}

public void mouseDragged(MouseEvent e) {

System.out.println("e : " + e.getX());
if((img.getX() + e.getX()-10 + 50) < 500 && (img.getX() + e.getX() - 10) > 0
&& (img.getY() + e.getY() +25) < 400 && (img.getY() + e.getY() -10) > 0)
{
img.setBounds(img.getX()+e.getX()-10,img.getY()+e.getY()-10,100,150);
}
}




public static void main(String args[]){
new test3();
}

}


Cette classe fonctionne. La différence c'est que dans un je fais setLocation et dans l'autre setBounds. Est ce que mon erreur peut provenir de là??? Ou sinon pouvez vous me dire comment effectuer correctement mon drag, m'expliquer la technique??

merci à tous

bonne journée

lafolle

2 réponses

lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
22 mai 2007 à 14:13
En fait je mon problème ce situe sur le drag and drop d'un JmenuPopup est ce possible de faire cela????
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
22 mai 2007 à 14:42
Pour essayer de résoudre ce problème :
comment fait on pour savoir si on a bouger la souris vers la droite vers le bas vers la gauche ou encore vers le haut.
Faut il utiliser des masques? Comment les utilises t on?

Merci
0
Rejoignez-nous