Je suis en train de programmer un petit logiciel et je bloque sur certain point.

Mon logiciel sera un logiciel de dessin, je fais du drag and drop d'élèments et j'aimerai pouvoir les supprimmer avec la touche Suppr mais je n'arrive pas à créer la méthode.

Sauriez vous comment je pourrais gerer les évenements du clique de la souris et du clavier. j'aimerai que en cliquant une fois sur une image on puisse la selectionné puis en tapant sur la touche suppr(keyEvent.VK_DELETE) quelle se supprime.
Pouvez vous m'aider à résoudre mon problème.


voilà mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
 
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
 
public class Test2 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 Test2(){//constructeur qui créé la fenetre principale
super("drag and drop");
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 Test2();
}
 
 
public void createCopy(){// créé une nouvelle copie de l'image
label[nbCopie]=new JLabel(new ImageIcon("logo.png"));
//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 pa nel
nbCopie++; //incrémente le nombre de copies existantes
 
label[nbCopie]=new JLabel(new ImageIcon("image.gif"));
//initialise l'image
label[nbCopie].setBounds(60,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
}
 
private JTextField champDeTexte;
 
void DialogueEtiquette(String titre) {
 
 
    JButton bouton = new JButton("OK");
    bouton.addActionListener((ActionListener) this);
 
    champDeTexte = new JTextField(20);
    champDeTexte.addActionListener((ActionListener) this);
 
    JPanel panneau = new JPanel();
    panneau.add(bouton);
 
    getContentPane().add(new JLabel("Donnez l'étiquette"), BorderLayout.NORTH);
    getContentPane().add(champDeTexte, BorderLayout.CENTER);
    getContentPane().add(panneau, BorderLayout.SOUTH);
    pack();
    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
.getScreenSize();
 
    setLocation((screenSize.width-getSize().width)/2,(screenSize.height-getSize().height)/2);
    setVisible(true);
}
 
 
public void keyPressed(KeyEvent event)
{
int keyCode = event.getKeyCode();
if (keyCode == keyEvent.VK_DELETE)
{
 
}
}
 
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) {
 
 
 
try {}
catch(Exception err) {
System.out.println("Erreur" + err);};
}}