[Débutant][Résolu] Comment superposer 2 JLabel ?

Comment superposer 2 JLabel ? [Débutant][Résolu] - Java - Programmation

Marsh Posté le 02-05-2003 à 13:37:36    

Je voudrais superposer 2 JLabel, dans une application, qui contiennent chacun une image.
 
Voici le code (qui fonctionne pas...) :
 
public class Fenetre extends JFrame {
         
        public Fenetre() {
                 
                super("première version" );
                this.setLocation(50,50);
                this.setSize(800, 600);
                this.addFond();
                this.addPlateau();
        }
 
        private void addFond() {
               
                ImageIcon imageEsp = new ImageIcon("../ww/espace1.jpg" );
                JLabel fond = new JLabel(imageEsp);
                this.getContentPane().add(fond);
                 
        }
         
        private void addPlateau() {
                 
                ImageIcon imagePlat = new ImageIcon("../ww/plateau.jpg" );
                JLabel plateau = new JLabel(imagePlat);
                this.getContentPane().add(plateau);
        }
}
 
la premièr image fait 800*600 pixel el la 2ième 400*400, je voudrais que la deuxième se superpose sur la première mais avec ce code seul la deuxième image apparait...
 
J'ai ésssayé plusieurs bricolages mais ça pas marché, merci de m'éclairer.


Message édité par Groomy le 03-05-2003 à 18:07:46
Reply

Marsh Posté le 02-05-2003 à 13:37:36   

Reply

Marsh Posté le 02-05-2003 à 13:58:33    

How to Use Layered Panes


Message édité par bobuse le 02-05-2003 à 13:58:50

---------------
get amaroK plugin
Reply

Marsh Posté le 02-05-2003 à 13:58:34    

Groomy a écrit :

Je voudrais superposer 2 JLabel, dans une application, qui contiennent chacun une image.
 
Voici le code (qui fonctionne pas...) :
 
public class Fenetre extends JFrame {
         
        public Fenetre() {
                 
                super("première version" );
                this.setLocation(50,50);
                this.setSize(800, 600);
                this.addFond();
                this.addPlateau();
        }
 
        private void addFond() {
               
                ImageIcon imageEsp = new ImageIcon("../ww/espace1.jpg" );
                JLabel fond = new JLabel(imageEsp);
                this.getContentPane().add(fond);
                 
        }
         
        private void addPlateau() {
                 
                ImageIcon imagePlat = new ImageIcon("../ww/plateau.jpg" );
                JLabel plateau = new JLabel(imagePlat);
                this.getContentPane().add(plateau);
        }
}
 
la premièr image fait 800*600 pixel el la 2ième 400*400, je voudrais que la deuxième se superpose sur la première mais avec ce code seul la deuxième image apparait...
 
J'ai ésssayé plusieurs bricolages mais ça pas marché, merci de m'éclairer.  


Je pense que le but de la manoeuvre est de créer un fond
pour cela, tu n'es pas obligé de passer par un label.
 
Tu devrais plutot déclarer comme attribut de ta classe une image et un element graphique.
dans la méthode paint tu crée le test :
if (img == null) {
img = createImage(800,600);
gImg = img.getGraphics();
}
 
tu déclares une seconde Image et un second élément graphique que tu peux modifier dans les méthodes de l'appli.
 
tu les regroupe finalement dans une meme image que tu affiches à l'écran
 
Si tu veux utiliser les labels, je te conseille de rendre null le Layout de ta JFrame et d'utiliser la méthode setLocation de tes objets
 
A+


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
Reply

Marsh Posté le 03-05-2003 à 18:09:06    

J'ai résolu le problème en mettant null en argument du setLayout de ma JFrame, et en utilisant setBounds pour mes JLabel et ça marche très bien...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed