-
Compréhension du DnD
Bonjour,
Quelqu'un pourrait-il m'éclairer sur le DragAndDrop? Voici mon contexte: mes informations se distribuent dans plusieurs JPanel:
- un premier de niveau 0 qui contiendra l'ensemble inclus dans un JScrollPane
- plusieurs de niveau 1, qui sont des regroupements du niveau suivant
- plusieurs de niveau 2 comportant plusieurs composants (2 JButton, 1 JLabel pour l'affichage d'une icône, 1 JLabel de texte (en HTML)
Pour permettre le DnD je mets un JPanel de niveau 2, vide, en guise d'intercalaire. Je cherche à permettre de faire un glisser-déposer d'un JPanel de niveau 2 dans un autre (pour mettre l'échange) ou dans un intercalaire (pour le déplacement). Je pense avoir compris la mécanique générale mais je butte sur l'aspect "à quel moment et sur quoi activer le DragGesture (et autres)". Est-ce sur le JPanel de niveau 0, de niveau 1, de niveau 2? Comment le paramétrer? Sachant qu'il me faut utiliser, entre autres, le DragEnter et le DragExit, pour visualiser la "cible".
Je ne peux pas vous proposer un extrait de code, mon logiciel est assez complexe. En revanche c'est un Logiciel Libre, donc le code est librement téléchargeable. En cas de besoin je vous communiquerai le lien de téléchargement.
-
En général quand le logiciel est trop complexe, on recrée un exemple simple a coté qui permet a loisir de simuler le soucis et de tester des solutions sans pour autant péter le logiciel complexe.
Le DnD prend 2 formes :
- Une forme simple a laquelle tout le monde pense en premier qui est juste de trimbaler qq chose avec son curseur sur l’écran.
- Le vrai DnD qui est un mécanisme de transfert (copie ou déplacement) de données sous plusieurs forme (voir DataFlavor) depuis / vers un composant Java a destination / en provenance d'une autre partie du soft ou carrément d'un logiciel tiers (potentiellement natif) et impliquant le presse papier système (voir java.awt.datatransfer + didacticiel) et qui peut avoir (ou non) une représentation customisée au niveau du curseur de la souris.