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 :

Pb GridLayout et JLayeredPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut Pb GridLayout et JLayeredPane
    Bonjour,
    Je voudrais mettre une image en fond et par dessus un pleins de petites images.
    Pour ce faire j'utilise un JLayeredPane dont la couche 0 est mon image, et la seconde couche est un JPanel.
    Pour la seconde couche j'ai créé une classe MonJPanel étendant JPanel contenant un GridLayout dans lequel j'ajoute des images.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class MonJPanel extends JPanel {
     
        public static final int TAILLE = 7;
     
        private JLabel[][] grille = null;
     
        public MonJPanel() {
            super(new GridLayout(7, 7));
            this.setPreferredSize(new Dimension(343, 343));
            grille = new JLabel[TAILLE][TAILLE];
            for (int i = 0 ; i < TAILLE ; i++) {
                for (int j = 0 ; j < TAILLE ; j++) {
                    grille[i][j] = new JLabel(new ImageIcon(getClass().getResource("/algo/image.png")));
                    add(grille[i][j]);
                }
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    MonJPanel pane = new MonJPanel();
    JLayeredPane lpane = new JLayeredPane();
    JLabel imageJeu = new JLabel(new ImageIcon(getClass().getResource("/algo/jeu.png")));
     
    imageJeu.setBounds(0, 0, 343, 343);
    lpane.add(imageJeu, new Integer(0));
     
    pane.setBounds(0, 0, 343, 343);
    lpane .add(plateau, new Integer(1));
    Or toutes les images de MonJPanel sont superposées (en haut à gauche).

    Quand je n'ai qu'une seule couche ça marche trés bien, l'image s'affiche bien, mais lors de l'ajout de MonJPanel à lpane, on ne voit plus l'image.

    J'aimerai savoir si vous aviez une idée de ce qui cloche, et si les JLayeredPane géraient la transparence.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Peux-tu essayer de faire setSize() en plus de setPreferredSize() dans le constructeur de MonJPanel ? Et appeler revalidate() dessus egalement apres l'ajout du contenu ?
    Le JLayeredPane n'a pas de layout donc, normalement, rien ne vient consolider la mise en forme de MonJPanel .

    Oui il gere le JLayeredPane gere la transparence (ou plutot il ne fait rien de specifique donc la transparence fonctionne), sauf que JPanel n'est pas transparent par defaut. Donc tu peux :

    - dans MonJPanel declarer setOpaque(false) et setBackground(new Color(0,0,0,0));

    - ou faire que MonJPanel derive de JComponent au lieu de JPanel.
    Merci de penser au tag quand 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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut
    Merci Beaucoup!
    Tout marche super bien!


    Et vive la Nouvelle-Calédonie!

Discussions similaires

  1. Taille d'un GridLayout
    Par Pfeffer dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 03/01/2005, 10h30
  2. Gridlayout
    Par TheSeb dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 06/12/2004, 20h16
  3. [JLayeredPane] problème d'affichage
    Par alexandra_ape dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 27/10/2004, 13h18
  4. [debutant] probleme de GridLayout
    Par wkd dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 30/05/2004, 14h33
  5. [GridLayout][GridData]
    Par Stessy dans le forum SWT/JFace
    Réponses: 13
    Dernier message: 06/08/2003, 16h22

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