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 :

superposer objets graphiques et les positionner


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut superposer objets graphiques et les positionner
    Bonjour,
    je voudrais superposer deux JPanel ou JLabel en donnant la position du deuxième conteneur.
    Je ne sais pas vraiment par ou commencer
    J'ai essayé un .add oui un setLocation mais mon deuxième conteneur (contenu) n'apparait pas.

    Cordialement
    trax

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Tu peux montrer un bout de code, stp?
    Et juste par simple curiosité : pourquoi veux-tu superposer 2 panels?

  3. #3
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    C'est pour un "jeu" : des objets que je peux drag&droper depuis un conteneur avec une image :

    je dois avoir des objets du genre de JLabel ou JPanel contenant une image. Ces Conteneur devront etre contenue dans un autre conteneur qui lui meme aura une image en fond. Finalement je devrais pouvoir drag&droper mes JLabel dans une JList

    Es ce que le JLayeredPanel est une bonne option ?

    sinon le code ressemblait à ça mais ce n'était qu'un essais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    labelFille.setIcon(new ImageIcon(path))
     labeParent.add(labelFille) ; 
     labelFille.setLocation(5,5) ;

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Citation Envoyé par trax44
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    labelFille.setIcon(new ImageIcon(path))
     labeParent.add(labelFille) ; 
     labelFille.setLocation(5,5) ;
    A ta place, je ferai quelque chose comme ça :
    1) Dessin d'une image dans un JPanel ou autre.
    2) Dessin d'objets de types Shape que tu remplis avec l'image que tu désires.
    3) Sur le drag de forme, tu récupère le déplacement et tu l'appliques à ta Shape.
    4) Utilisation d'AffineTransform pour appliquer la translation adéquate à ta Shape.

  5. #5
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    mais est-ce que le fait de dessiner l'objet shape ne lui fait pas perdre sa consistance d'objet : je veux dire est-ce que le drop me renvoie bien un objet shape et non image.

    Ce que je voudrais c'est ajouter un objet sur un layer plutot que dessiner. C'est peut etre la meme chose, mais je m'y connais pas encore beaucoup en interface java

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Dans l'appli sur laquelle je bosse actuellement :
    1) on dessine une image de fond
    2) on dessine des Shape sur une image.
    3) on crée une couche qui stocke un Vector de Shape (les Shape tracées)
    4) sur un clic, on regarde si les coordonées de la souris appartiennent à une des Shape tracées
    5) si oui, sur le drag on déplace la Shape (on lui applique une translation)

    Ainsi, sur le drop, tu as toujours un objet de type Shape. Après, je ne sais pas si les Shape sont compatibles avec tes JList, vu que je ne connais pas le fonctionnement de ce composant.

    Chez nous ça marche. Ce n'est peut-être pas le plus adroit, mais ça a le mérite de fonctionner

  7. #7
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Les grands esprits se rencontrent!

  8. #8
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    la méthode dessiner dans une image et mettre le tout ne me convient. Elle me fait perdre la notion d'objet lors du grad&drop.

    Ce que je voudrais faire c'est mixer les deux technique :
    dessiner l'image de fond dans mon JPanel et mettre (add) les objet par dessu.
    Mais j'utilise la méthode paint du JPanel pour mettre une image en fond. D'après ce que j'aurais compris, en redessinant le fond il overdraw mes objets.
    Et la je vois pas comment faire


    trax

  9. #9
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut

    en regardant de plus près quelque message du forum, puis un code de
    hhttp://java.sun.com/docs/books/tuto...dPaneDemo.java

    j'ai fini pas prendre un JLayeredePane et sans oublier de redimensionner les objets !!!

    merci a tous

    trax

  10. #10
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour la notion d'objet, tu l'auras toujours, java étant un langage (presque complètement) objet, il suffit juste que tu redéfinisse tes Handlers,sources et tout le toutim de la façon adéquate et plus de problème.
    En fait tu mixeras le MouseListener (qui permettra de définir l'image sélectionnée) puis du drag & drop classique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Spark] Effacer les "objets graphiques" aprés une animation
    Par Elendhil dans le forum Flex
    Réponses: 0
    Dernier message: 23/07/2010, 20h59
  2. [WD-2007] Word et les objets graphiques
    Par Heureux-oli dans le forum Word
    Réponses: 2
    Dernier message: 01/07/2009, 23h31
  3. Comment adapter les objets graphiques (uicontrol) à toutes résolutions d'écran
    Par camillechambon dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 01/05/2007, 23h01
  4. Différence entre le positionnement relatif et absolu des objets graphiques
    Par pitizone dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 05/04/2007, 13h49
  5. manipuler les objets graphique d'excel sur access
    Par technopole dans le forum Access
    Réponses: 4
    Dernier message: 21/07/2006, 10h37

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