Je dois implémenter les fonctions de drag en drop entre différents objets, et notament une JTable en réception(drop).
La mise en oeuvre est-elle identique quel que soit le type de composant source (drag) ?
Je dois implémenter les fonctions de drag en drop entre différents objets, et notament une JTable en réception(drop).
La mise en oeuvre est-elle identique quel que soit le type de composant source (drag) ?
Oui. Cf. le tutorial Swing sur le Drag and Drop : http://java.sun.com/docs/books/tutor.../misc/dnd.html
Tu peux aussi lire le blog de Shannon Hickey (http://weblogs.java.net/blog/shanman) qui est l'ingénieur en charge du DnD Swing chez Sun.
D'après le premier lien, Une JTable ne permet que le Drag copy et le copy.
Donc pas de drop à l'horizon. J'en déduis que je ne peux pas déplacer le contenu d'une cellule dans une autre avec drag and drop, ou bien j'ai raté un truc ?
Bien sûr que tu peux faire des drops sur une JTable.
Désolé pour le lien, voici le bon : http://weblogs.java.net/blog/shan_man/
Et pour etre plus precis :
You've seen in the Data Transfer Support table that several components do not support drop by default. The reason for this is that there is no all-purpose way to handle a drop on those components. For example, what does it mean to drop on a particular node of a JTree? Does it replace the node, insert below it, or insert as a child of that node? Also, we don't know what type of model is behind the tree — it might not be mutable. However, while Swing doesn't provide a default implementation, the framework for drop is there. You need only to provide a custom TransferHandler that deals with the actual transfer of data.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Ok, c'est transparent comme une montagne de goudron...![]()
en fait je dois remplir une JTable avec des témoins (disons des rectangles de couleur pour faire plus simple). L'utilisateur peut alors glisser un témoin d'une case à une autre.
Est-ce que cela reste t-il toujours dans le domaine du possible ?
d'avance merci.
Pour le drag&drop, va voir cette page et regarde les sources :
http://gfx.developpez.com/tutoriel/java/swing/drag/
++![]()
Décidément j'ai pas de bol. Le lien correspondant à la démo de gfx m'envoie dans les choux...![]()
Et puis je dois également ajouter que je me contenterai au début d'un example simple de drag and drop d'une cellule à une autre...
de plus, je suis astreint au JRE 1.3, donc je dois éviter toutes les superbes inovations apparues après.
Tous les exemples donnés sur le site de Sun sont précédés de la mention : (it requires release 6)![]()
et mes recherches sur Google ne donnent pas grand chose.
Curieux comme ce sujet semble ne pas interesser grand monde.
Personne n'aurait sous la main un bout de code permettant le glisser/déposer d'une cellule de JTable à une autre qui ne requiert pas la dernière version du JRE ?
Bon, j'ai trouvé quelques billes. Je vais essayer de me débrouiller.
Il semble facile de Drag et Dropper une ligne entière d'une JTable mais pas une simple cellule. Je vais tenter de contourner avec un grid layout rempli de JLabels simulant mes carrés.
Ok, je suis à fond dans les choux.
setDragEnabled() et setTransferHandler() ne sont dispo que depuis 1.4 et je suis astreint au jeu d'instructions 1.3.
Autant dire qu'il faudrait réinventer la roue et coder un système de drag and drop conforme à ce jeu d'instruction.![]()
Partager