Drag & drop, probleme affichage images

Fermé
boudenmo Messages postés 12 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007 - 22 oct. 2007 à 16:57
boudenmo Messages postés 12 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007 - 22 oct. 2007 à 17:12
Bonjour,

J'aimerai créer un logiciel du type visio, c'est à dire avoir une liste d'éléments à ma gauche et faire du drag and drop afin de déssiner des organigrammes.
Pour l'instant j'ai créer une classe gr qui m'affiche bien une image (alternative.jpg) au position 0,0 et j'aimerai ajouter plusieurs autres images par exemple comme un tableau de 2colonnes et plusieurs lignes pour les différents éléments mais je n'ai pas réussit à afficher ma deuxième image à la position 0,100 par exemple.
Est ce que vous pouriez m'aider:

Voici mon code:

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

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;

public class gr extends JFrame implements MouseMotionListener{
JLabel[] label = new JLabel[100]; //Copies de l'image
JPanel p ;//notre panel principal qui contient les images
int nbCopie=0;//nombre de copies existantes

public gr(){//constructeur qui créé la fenetre principale
super("titre");
p = new JPanel(null);
createCopy(); //on ajoute une copie au panel
this.getContentPane().add(p);
this.setSize(800,600);
this.setVisible(true);
}

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


public void createCopy(){// créé une nouvelle copie de l'image
label[nbCopie]=new JLabel(new ImageIcon("alternative.jpg"));
//initialise l'image
label[nbCopie].setBounds(0,0,120,160); // initialise sa position aux coordonnéees 0,0
label[nbCopie].addMouseMotionListener(this);//ajoute un mousemotionlistener pour détecter le drag n drop
p.add(label[nbCopie]);//on ajoute la copie au panel
p.repaint();//on redessine le panel
nbCopie++; //incrémente le nombre de copies existantes
}

public void mouseDragged(MouseEvent e) {
//lorsque qu'on fais du drag n drop sur une copie

//si la derniere copie créé a été bougée (coordonnées 0,0),
//on en créé une nouvelle qui sert de modele
if (label[nbCopie-1].getX() != 0 && label[nbCopie-1].getY()!=0) createCopy();

JLabel temp=(JLabel)e.getSource();
//créé une référence vers la copie sur laquelle on a cliqué

temp.setBounds(temp.getX()+e.getX()-60,temp.getY()+e.getY()-80,120,160);
//déplace la copie sur laquelle je fais du drag n drop
}

public void mouseMoved(MouseEvent e) {
}

}
A voir également:

1 réponse

boudenmo Messages postés 12 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007
22 oct. 2007 à 17:12
c'est urgent! est ce que vous pouriez m'aider rapidement sur ce point s'il vous plait!
merci
0