Bonjour,

J'essaie de faire du Drag&Drop entre plusieurs composants. Pour être plus précis, je veut pouvoir glisser des morceaux d'image, ou de panels vers une boite de texte pour y inscrire le texte qui est associé, dans mon cas c'est une carte interactive de bus. J'essaie de mimer l'exemple label de la page suivante:
http://java.sun.com/docs/books/tutor...dnd.html#label.
Malheureusement, bien que le clic soit reconnu, l'opération de drag&drop n'est jamais enregistrée.

Jean

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
package Sample; 
import java.awt.BorderLayout; 
import java.awt.FlowLayout; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
public class TestScrollWindow extends JFrame { 
        public TestScrollWindow() { 
                JPanel bottomPanel = new JPanel(new FlowLayout()); 
                JTextField jtf = new JTextField(30); 
                jtf.setDragEnabled(true); 
                bottomPanel.add(jtf); 
                jtf = new JTextField(30); 
                jtf.setDragEnabled(true); 
                bottomPanel.add(jtf); 
 
                getContentPane().setLayout(new BorderLayout()); 
                getContentPane().add(bottomPanel, BorderLayout.SOUTH); 
                getContentPane().add(new BluePanel("JPanel"), BorderLayout.NORTH); 
 
                // Truc a mettre partout 
                setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE ); 
                pack(); 
                setVisible(true); 
        } 
        public static void main(String[] args) { 
                new TestScrollWindow(); 
        } 
 
} 
 
package Sample; 
import java.awt.Color; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import javax.swing.JComponent; 
import javax.swing.JPanel; 
import javax.swing.TransferHandler; 
public class BluePanel extends JPanel { 
        public BluePanel(String name) { 
                setBackground(Color.BLUE); 
                setTransferHandler(new TransferHandler(name)); 
                addMouseListener(new DragMouseAdapter()); 
        } 
        public class DragMouseAdapter extends MouseAdapter { 
            public void mousePressed(MouseEvent e) { 
                JComponent c = (JComponent)e.getSource(); 
                TransferHandler handler = c.getTransferHandler(); 
                handler.exportAsDrag(c, e, TransferHandler.COPY); 
            } 
        } 
}