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 And Drop et Dimension JPanel


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 38
    Points
    38
    Par défaut [Swing] Drag And Drop et Dimension JPanel
    bonjour a tous.

    Voila je fais une petite application swing et je rencontre quelques problèmes :

    1.
    J'ai une classe héritant de JPanel dans laquelle j'applique un this.preferredSize().
    J'ai fait une petite méthode main pour tester. A l'affichage mon objet à bien la
    taille que j'ai spécifié.

    Maintenant quand je creé une instance de cet objet (donc un type JPanel) et que
    je l'ajoute dans un borderLayout dans une autre classe, l'objet n'a plus du tout
    la taille spécifiée.

    J'ai essayé avec setSize() sans résultat. J'ai aussi essayé de le redimensionner
    depuis la classe externe mais pas de résultat non plus.
    Que se passe t'il ?


    2.
    Je veux exécuter un drag and drop d'un JLabel sur un GridLayout de JLabels.
    Quand je drag mon JPanel sur le GridLayout, il passe en dessous de celui ci et
    deviens donc invisible...
    Comment je peux remédier à ça ?


    Merci à tous de vos réponses.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Points : 199
    Points
    199
    Par défaut
    1
    Si j'ai bien saisi, ce qui se passe c'est que le borderLayout est dans un objet qui possède une certaine taille. les composant contenu dans le border layout ne peuvent depasser cette taille vu qu'ils sont contenu dedans.
    essaye de faire un pack() de ta frame.
    Ou alors met ton jpanel dans un JScrollPane si tu veux qu'elle est exactement cette taille.

    2
    pour le drag & drop,
    tu utilise les transferable/thransfertHandler? (http://mbaron.developpez.com/javase/dnddt/)
    Parceque la, c'est à toi de décider ce que fait on objet.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par merill Voir le message
    1
    Si j'ai bien saisi, ce qui se passe c'est que le borderLayout est dans un objet qui possède une certaine taille. les composant contenu dans le border layout ne peuvent depasser cette taille vu qu'ils sont contenu dedans.
    essaye de faire un pack() de ta frame.
    Ou alors met ton jpanel dans un JScrollPane si tu veux qu'elle est exactement cette taille.
    Effectivement avec un pack tout se dimensionne correctement.
    merci !!!

    Citation Envoyé par merill Voir le message
    2
    pour le drag & drop,
    tu utilise les transferable/thransfertHandler? (http://mbaron.developpez.com/javase/dnddt/)
    Parceque la, c'est à toi de décider ce que fait on objet.
    Non en fait, je pensais éviter de les utiliser. En fait j'ai juste besoin de récupérer la position ou est est relâcher l'objet draggué. Mais la le problème c'est que l'objet draggué passe en dessous de la grille que j'ai crée donc ça va pas. C'est impossible de positionner l'objet puisqu'il est caché donc invisible.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Points : 199
    Points
    199
    Par défaut
    Citation Envoyé par nicolav Voir le message
    C'est impossible de positionner l'objet puisqu'il est caché donc invisible.
    Dans une interface swing, ton objet se dessine à l'endroit où le layout décide, et pas en-dehors.
    Si tu ne veut vraiment pas utiliser les transferable (très simple pourtant), vire les layout, positionne tout à la main et fait en sorte que ton objet drag&drop soit dessiné en dernier (et encore, c'est pas sur que ca marche).

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    En fait j'ai trouvé le moyen de le faire sans les transferables.

    En fait j'utilise la méthode findComponent() pour récupérer le JPanel dans lequel je me trouve avec mon objet dragué puis j'ajoute la copie de mon objet draggué dans le JPanel obtenu avec la méthode ci dessus. Et la ça marche.

    Cela dit je vais étudier quand même les transférables. ça rendra peut être plus simple mon code.

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 d'un JTree vers un JPanel
    Par Furlaz dans le forum Composants
    Réponses: 2
    Dernier message: 29/08/2013, 02h38
  3. Drag and drop d'un JPanel à un autre
    Par junior222 dans le forum Composants
    Réponses: 10
    Dernier message: 07/09/2012, 13h14
  4. Drag and Drop avec un JPanel
    Par scorplayer dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/05/2008, 19h35
  5. 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