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); } } }
Partager