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

Composants Java Discussion :

Superposition d'image gif/png (via JLabel)


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Superposition d'image gif/png (via JLabel)
    Bonjour,

    Je suis actuellement en train de concevoir une application affichant une "map" en 3D.


    Pour réaliser cela j'ai mis le layout de mon panel à null
    Puis via une deux boucles imbriqués (parcours de chaque ligne, puis parcours de chaque colonne), j'ai créé un nouveau panel j'ai mis l'icone qui lui était assossié et j'ai fais un setBounds afin de le placer.

    J'ai ajouté les panels en partant du haut à gauche pour finir en bas a droite. Mais comme vous pouvez le voir j'ai un soucis au niveau de la superposition. La case qui est situé au dessus cache une partie de l'image, or je préférerais que ce soit l'inverse... J'ai essayé de parcourir ma map dans l'autre sens en partant du bas a gauche pour finir en haut a droite mais ça ne change rien. J'ai aussi mis tous mes labels à setOpaque(false) mais ça ne change rien.

    Si quelqu'un pouvait me donner des pistes afin que les images situées a la ligne X soit au dessus de celles situées à la ligne X-1 ça m'intéresserait...

  2. #2
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    comme vous pouvez le voir j'ai un soucis au niveau de la superposition
    Bin non, on ne voit pas le souci, en fait, on ne sait pas ce que tu veux obtenir...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Et bien les images que j'ai affiché dans ma capture d'écran sont des gifs de 54px * 54 px.

    Par exemple voici un arbre :


    Or comme on peut le voir sur ma capture d'écran l'arbre n'est pas entier car la case du dessus cache son "feuillage".

    Ce que je veux c'est :

    La ligne de la map X au premier plan
    La ligne de la map X - 1 au second plan
    La ligne de la map X - 2 au troisième plan
    Et ainsi de suite...

    Avec X la dernière ligne de ma map située tout en bas de mon image...

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Heu, si j'ai bien compris, t'as mis un JLabel par case??

    Tu dois faire un seul composant (étendant JComponent) comprenant toute ta zone de dessin, et dans sont paintComponent calculer et dessiner l'ensemble de ta carte.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Parfait.

    Maintenant je vais utiliser la technique de double buffering afin de ne pas redessiner l'image a chaque fois. Car il faudrait que je puisse afficher ma case sur laquelle ma souris est sans être obligé de tout redessiner mais j'ai déjà fait cela.

    En tout cas merci bien. J'avais plus pensé à ce bon vieux "Graphics" ! o/

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    En parallèle du buffering il te faudra aussi géré les clipping bounds de façon intelligente.

    Cf la méthode repaint qui prend 4 paramètre au lieu de rien et la méthode getClipBounds de la classe Graphics

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/10/2008, 15h08
  2. [ImageMagick] Redimensionner une image JPEG PNG GIF
    Par Stouille89 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 25/08/2007, 21h10
  3. [ImageMagick] Mixer une image Gif et PNG
    Par rigolman dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 16/10/2005, 14h58
  4. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 00h57
  5. Afficher tout type d'image (gif ,png, jpg...)
    Par jfb53 dans le forum C++Builder
    Réponses: 22
    Dernier message: 20/07/2005, 14h52

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