IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[Swing] Drag & Drop personnalisé + composants personnalisés


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut [Swing] Drag & Drop personnalisé + composants personnalisés
    Bonjour,

    Ce que je veux réaliser est très simple et assez commun : Positionner une flèche entre deux points. La flèche est un composant Swing. Les endroits où les extrémités de la flèche peuvent être positionnés sont aussi des composants.

    Si on clique sur une extrimité de la flèche et que l'on glisse la souris sans relacher le bouton de la souris, on doit pouvoir placer la flèche sur un des composants pouvant servir de cible.

    Le moyen le plus simple aurait été d'implanter un MouseMotionListener, jusque là tout va bien, jusqu'à ce qu'il faille connaître le composant au dessus duquel le bouton de la souris a été relaché. Je ne connais pas de moyen simple d'avoir ce composant.

    J'ai donc regardé du coté du drag&drop et son implantation en Swing. Mais alors, là, ça devient extrèmement compliqué à faire... Il faut un TransfertHandler, un Transferable, et peut être d'autres trucs... Toujours est il que je ne parviens pas à faire ce que je veux, de cette manière. Les tutoriels Java de sun ne sont pas très précis sur le sujet, et traitent souvent de composants Swing prédéfinis, ce qui n'est pas mon cas.

    Existe t-il un moyen simple, d'implanter cette fonctionnalité simple ?


    Blustuff.

  2. #2
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    salut,

    le dnd est faussement compliqué.... si ton objet est un JComponent alors c'est vraiment super facile de faire du dnd

    pour les drag&drop il y a 2 solutions :

    ton objet doit implementer les interfaces DragSourceListener et DropTargetListener (ou lui associer des classes qui implementent ces interfaces)

    tu as des exemples ici

    http://www.javaworld.com/javatips/jw-javatip97.html

    ou bien il y a un moyen parfois plus simple (ca depend du resultat que tu veux mais je pense que pour faire ce que tu veux c'est suffisant) c'est d'utiliser la methode setDragEnabled(boolean) associée a un transfertHandler : plus de détail ici (ils parlent des jcomponent en general):

    http://java.sun.com/docs/books/tutor.../misc/dnd.html

    voila @+

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Je connais le second lien. Mais ça reste extrèmement compliqué pour ce que je veux faire... J'ai entre temps tenté d'utiliser getComponentAt qui permet de trouver le composant sur lequel je n'ai qu'une méthode à appeler. (Je n'ai pas besoin de transfert de données ou quoi...) Seulement, vu que tous mes composants se superposent j'arrive pas à faire ce que je veux. Suivant l'action que j'ai à effectuer j'ai besoin que certains composants soient considérés au premier plan pour les MouseEvent, ou le getComponentAt.

    Les évènements de la souris ne peuvent pas être passé successivement à tous les composants qui se superposent ? J'ai le moyen d'avoir un ensemble de composants à une position afin de les énumérer ?

Discussions similaires

  1. Swing Drag and Drop
    Par adissa357 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 26/11/2013, 18h38
  2. Drag and Drop personnalisé
    Par artmicro dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/06/2013, 17h43
  3. [Swing] Drag And Drop et Dimension JPanel
    Par nicolav dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 14/06/2008, 00h16
  4. Réponses: 6
    Dernier message: 06/03/2007, 08h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo