Formation JAVA, tutoriel & guide de travaux pratiques en pdf.
Mise en œuvre du « Drag and Drop »
- La technique du « Drag and Drop » ou « Déposé et Collé » permet d’effectuer un transfert de données par manipulation directe
- Possibilité d’effectuer un « Drag and Drop » interne à l’application et externe (entrée ou sortir des données de ou vers l’application)
- Caractéristiques du « Drag and Drop »
- Un composant source
- Un composant destination
- Un objet de transfert du composant source à destination
- Type de « Drag and Drop » : déplacement ou copie de l’objet
- Une image qui affiche l’état du « Drag and Drop »
- Information pour différencier une copie et un déplacement
- Fantôme pour donner un aperçu
Mise en œuvre du « Drag and Drop » avec Java
- Java a introduit la métaphore du « Drag and Drop » à partir de la version 1.2 : ~ 10 classes du package java.awt.dnd.*
- DragGestureRecognizer, DragGestureListener, DragSourceContext, …
- Une nouvelle API beaucoup plus légère et plus simple a été proposée à partir de la version 1.4
- TransferHandler
- Transferable (commun avec l’API précédente)
- Le but de cette partie est de présenter l’API pour le « Drag and Drop » de manière à pouvoir
- Effectuer des « Drag and Drop » sur les composants basiques et complexes
- Comprendre le mécanisme de transfert de données
Mise en œuvre du « Drag and Drop » : composant
- Les composants listés dans le tableau précédent permettent d’activer ou pas la capacité de glisser les données
- setDragEnabled(boolean p): active ou désactive la possibilité de glisser des données
- Au contraire les composants non présents dans le tableau ne permettent pas de gérer directement le glisser
- Pour tous les composants possibilité de modifier l’objet
- TransferHandler
- setTransferHandler(TransferHandler p): modifie l’objet de transfert de données
- Exemple : activer ou pas la possibilité de glisser un objet
JList myList = new JList();
myList.setDragEnabled(true);
myList.setTransferHandler(new MyTransferHandler());
Jlabel myLabel = new Jlabel();
myLabel.setDragEnabled(true);// Erreur
……
Cours Java pour le développement de clients lourds (605 KO) (Cours PDF)