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

 Java Discussion :

JLabel image dans JPanel ne s'affiche pas


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 6
    Points : 7
    Points
    7
    Par défaut JLabel image dans JPanel ne s'affiche pas
    Bonsoir, j'ai besoin de votre aide, je n'arrive pas à afficher ce JLabel qui contient une image sur la fenetre. Je voudrais utiliser dans un JPanel

    Ensuite j'aimerais pouvoir cliquer sur ces JLabel pour pouvoir gérer des évènements.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import javax.swing.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import javax.imageio.ImageIO;
    import javax.swing.*;
     
    import java.awt.Graphics2D;
    import java.awt.GraphicsConfiguration;
    import java.awt.GraphicsEnvironment;
    import java.awt.RenderingHints;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
     
    class Plateau extends JPanel // correspond à l'ensemble de composant que de la fenetre
    {
        private Image plateau_jeu_pente; // image du plateau du jeu de pente
        private JLabel image;
     
        public Plateau()
        {
     
            try
            {
                plateau_jeu_pente = ImageIO.read(new File("plateau_jeu_de_pente_agrandi.jpg"));
                setPreferredSize(new Dimension(850, 520)); // on met en place la dimension de la fenetre
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
     
            ImageIcon icon = new ImageIcon("sac_pion_noir.png");
            JLabel thumb = new JLabel(icon);
            thumb.setLayout(new FlowLayout());
            this.add(thumb);
        }
     
        public void paint(Graphics g) // methode paint est propre à JPanel
        {
            //g.drawImage(plateau_jeu_pente,165,0,null);
     
        }
     
    }

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import java.util.*;
    import javax.swing.*;
    import java.awt.*;
     
    class Fenetre extends JFrame // JFrame correspond à l'application, la fenetre
    {
        private Plateau plateau;
     
     
        public Fenetre(String s)
        {
            super(s);
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.setSize(850, 520); // définit la taille
     
            this.setLocationRelativeTo(null);
            this.setResizable(false); // on ne peut pas la reidmensionner la fenetre
     
            Color newColor = new Color (179, 137, 96);
            this.setBackground(newColor);
     
     
            plateau = new Plateau();
     
            this.setContentPane(plateau);
            this.getContentPane().setLayout(null);
            //image_fond.setUndecorated(true);
            pack();
            this.setVisible(true);
     
     
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.*;
    import javax.swing.*;
    import javax.swing.text.BadLocationException;
    import java.io.IOException;
     
     
     
    public class Principal
    {
        public static void main(String [] args) throws BadLocationException, IOException
        {
            Fenetre fenetre = new Fenetre("Jeu de pente");
        }  
    }
    S'il vous plait donner moi vos réponses le plus vite possible.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,


    1. En redéfinissant paint(Graphics) de JPanel avec une méthode qui ne fait rien, tu empêches tout dessin du JPanel (et par conséquence de son contenu).
    2. En supprimant le layout manager du JPanel, tu empêches tout layout automatique des composants, donc ils ont une taille de 0x0.

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
       plateau = new Plateau();
       
              this.setContentPane(plateau);
              this.getContentPane().setLayout(null);

    [*]ça ne sert à rien de changer le layout d'un composant d'UI comme tu le fais ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     thumb.setLayout(new FlowLayout());
    La présentation et l'agencement interne des composants d'UI est gérée par le LookAndFeel ! Les layout managers sont là pour agencer les composants dans leur conteneur.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

Discussions similaires

  1. image dans canvas ne s'affiche pas
    Par erca57 dans le forum Tkinter
    Réponses: 7
    Dernier message: 04/03/2014, 07h21
  2. Image de fond ne s'affiche pas dans le menu
    Par sebasti1-88 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 31/08/2011, 17h44
  3. Afficher une image dans jpanel
    Par lostsoul dans le forum Général Java
    Réponses: 6
    Dernier message: 12/05/2009, 04h07
  4. Mon JPanel ne s'affiche pas dans ma JFrame
    Par Sekmeth dans le forum Débuter
    Réponses: 12
    Dernier message: 24/04/2009, 23h50
  5. Problème avec l'insertion d'une image dans JPanel
    Par anutka dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 16/03/2006, 10h02

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