Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'affichage des images

    25 mars 2009 à 14:33:36

    Bonjour,

    J'ai un porblème avec l'affichage des images dans un JPanel.

    Voilà j'ai crée une fenêtre qui contient une barre d'outils et deux panels.
    Voilà le code u deuxième panel :

    /*--------------------------------------------------------------------------------------------------------------------|
     |                                                          JKakuro.java                                                 |
     |                                                                                                                    |
     |                                                      créé par wanghao10                                            |
     |                                                                                                                    |
     |--------------------------------------------------------------------------------------------------------------------|
     */
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    
    public class JOptions extends JPanel{
        
        // panels contenus dans ce panel
        JOuvrir panelOuvrir = new JOuvrir(); // panel pour ouvrir une grille
        JVerifier panelVerifier = new JVerifier(); // panel pour vérifier la grille
        JAction panelActions = new JAction(); // panel pour annuler, répéter l'action ou recommencer la grille
        JTheme panelTheme = new JTheme(); // panel pour changer le thème
        JQuitter panelQuitter = new JQuitter(); // panel pour quitter
        JNombres panelNombres = new JNombres(); // panel pour insérer un nombre
        JPanel panel = new JPanel(); // panel
        
        // autres
        
        GridLayout dispo = new GridLayout(6, 1); // disposition
        GridLayout dispoN = new GridLayout(3, 3); // disposition pour le panelNombres
        
        public JOptions() { // Constructeur
            
            // on construits les panels
            
            // panelOuvrir
            
            panelOuvrir.add(panelOuvrir.ouvrir); // on ajoute le boutton au panel
            panelOuvrir.setBorder(BorderFactory.createTitledBorder("Ouvrir")); // on ajoute une bordure au panel
            
            // panelVerifier
            
            panelVerifier.add(panelVerifier.verifier); // on ajoute le boutton au panel
            panelVerifier.setBorder(BorderFactory.createTitledBorder("Vérifier")); // on ajoute une bordure au panel
            
            // panelActions
            
            panelActions.add(panelActions.annuler); // on ajoute le boutton au panel
            panelActions.add(panelActions.repeter); // on ajoute le boutton au panel
            panelActions.add(panelActions.recommencer); // on ajoute le boutton au panel
            panelActions.setBorder(BorderFactory.createTitledBorder("Actions")); // on ajoute une bordure au panel
            
            // panelTheme
            
            panelTheme.add(panelTheme.changerTheme); // on ajoute le boutton au panel
            panelTheme.setBorder(BorderFactory.createTitledBorder("Thème")); // on ajoute une bordure au panel
            
            // panelQuitter
            
            panelQuitter.add(panelQuitter.quitter); // on ajoute le boutton au panel
            panelQuitter.setBorder(BorderFactory.createTitledBorder("Quitter")); // on ajoute une bordure au panel
            
            // panelNombres
            
            panelNombres.setLayout(dispoN); // on dispositionne les composants
            panelNombres.add(panelNombres.boutton1); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton2); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton3); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton4); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton5); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton6); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton7); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton8); // on ajoute le boutton au panel
            panelNombres.add(panelNombres.boutton9); // on ajoute le boutton au panel
            panelNombres.setBorder(BorderFactory.createTitledBorder("Insérer un nombre")); // on ajoute une bordure au panel
            
            // Construction de panel
            
            panel.setLayout(dispo); // on dispositionne les composants
            panel.add(panelOuvrir); // on ajoute le panel au panel
            panel.add(panelVerifier); // on ajoute le panel au panel
            panel.add(panelActions); // on ajoute le panel au panel
            panel.add(panelTheme); // on ajoute le panel au panel
            panel.add(panelQuitter); // on ajoute le panel au panel
            panel.add(panelNombres); // on ajoute le panel au panel
            
            // Construction du panel
            
            this.add(panel); // on ajoute le panel au panel
            
            panelOuvrir.repaint();
            panelVerifier.repaint();
            panelActions.repaint();
            panelTheme.repaint();
            panelQuitter.repaint();
            panelNombres.repaint();
            panel.repaint();
        }
    }
    
    class JOuvrir extends JPanel{ // panel qui ouvre une grille
    
        JButton ouvrir = new JButton("Ouvrir"); // boutton ouvrir
        
        public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
            
            g.drawImage(Toolkit.getDefaultToolkit().getImage("thèmes/bleu/bleu1.png"),
                    0, 0, null); // on dessine l'image
        }
    }
    
    class JVerifier extends JPanel{ // panel qui ouvre une grille
        
        JButton verifier = new JButton("Vérifier la grille"); // vérifier la grille
        
        public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
            
            g.drawImage(Toolkit.getDefaultToolkit().getImage("thèmes/bleu/bleu2.png"),
                    0, 0, null); // on dessine l'image
        }
    }
    
    class JAction extends JPanel{ // panel qui ouvre une grille
        
        JButton annuler = new JButton("Annuler"); // annuler
        JButton repeter = new JButton("Répéter"); // répéter
        JButton recommencer = new JButton("Recommencer"); // recommencer
        
        public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
            
            g.drawImage(Toolkit.getDefaultToolkit().getImage("thèmes/bleu/bleu3.png"),
                    0, 0, null); // on dessine l'image
        }
    }
    
    class JTheme extends JPanel{ // panel qui ouvre une grille
        
        JButton changerTheme = new JButton("Changer de thème"); // changer de thème
        
        public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
            
            g.drawImage(Toolkit.getDefaultToolkit().getImage("thèmes/bleu/bleu4.png"),
                    0, 0, null); // on dessine l'image
        }
    }
    
    class JQuitter extends JPanel{ // panel qui ouvre une grille
        
        JButton quitter = new JButton("Quitter"); // quitter
        
        public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
            
            g.drawImage(Toolkit.getDefaultToolkit().getImage("thèmes/bleu/bleu5.png"),
                    0, 0, null); // on dessine l'image
        }
    }
    
    class JNombres extends JPanel{ // panel qui ouvre une grille
        
        JButton boutton1 = new JButton("1"); // 1
        JButton boutton2 = new JButton("2"); // 2
        JButton boutton3 = new JButton("3"); // 3
        JButton boutton4 = new JButton("4"); // 4
        JButton boutton5 = new JButton("5"); // 5
        JButton boutton6 = new JButton("6"); // 6
        JButton boutton7 = new JButton("7"); // 7
        JButton boutton8 = new JButton("8"); // 8
        JButton boutton9 = new JButton("9"); // 9
        
        public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
            
            g.drawImage(Toolkit.getDefaultToolkit().getImage("thèmes/bleu/bleu6.png"),
                    0, 0, null); // on dessine l'image
        }
    }
    


    Voilà le problème : les images de fonds des panels ne s'affiche pas toujours. En particulier celle du JNombres. J'ai vérifié ce sont les bons chemins des images et celles-ci existent bien.

    Faut-il que je crée une classe pour chaque JPanel ?

    Merci de m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2009 à 16:36:45

      Salut :)

      Citation : Pas de titre

      Faut-il que je crée une classe pour chaque JPanel ?


      Ben tu crées déjà des classes pour chaque JPanel. A partir du moment où tu utilises le mot class, tu déclares une classe.

      Petite remarque en premier lieu, évite à tout prix les accents dans les noms de fichiers, les noms de dossiers, les noms de classes et variables. Essaie déjà de retirer tous les accents. (de ton code et des tes répertoires !)
      Autre remarque, dans paintComponent ajoute en première instruction super.paintComponent(g). Comme ton appli a l'air d'avoir un comportement non prévisible, ça peut venir de là.

      panelActions.add(panelActions.annuler); // on ajoute le boutton au panel
      

      Oh pis alors on a oublié les bonnes méthodes d'encapsulation ? ^^
      Pourquoi ne pas ajouter directement tes JButton dans leur classe respective, comme je le fais :
      class JAction extends JPanel{ // panel qui ouvre une grille
          
          private JButton annuler = new JButton("Annuler"); // annuler
          private JButton repeter = new JButton("Répéter"); // répéter
          private JButton recommencer = new JButton("Recommencer"); // recommencer
      
          public JAction() {
              super();
              this.add(annuler);
              this.add(repeter);
              this.add(recommencer);
          }
          
          public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
              super.paintComponent(g);
              g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu3.png"),
                      0, 0, null); // on dessine l'image
          }
      }
      

      T'as remarqué j'ai créé un constructeur, j'ai mis les champs d'instance en private, j'ai appelé super.paintComponent(g) et j'ai viré l'accent de "thèmes".
      C'est un peu mieux comme ceci, bien que perfectible encore.

      Je m'en vais fouiller plus profondément où peut être l'erreur.

      P.S. J'adore le Kakuro : feras-tu partager ton appli ? :)

      [EDIT]
      Alors ta classe JOptions hérite de JPanel. Donc pourquoi recrées-tu un JPanel pour accueillir tous tes composants ?

      panel.setLayout(dispo); // on dispositionne les composants
              panel.add(panelOuvrir); // on ajoute le panel au panel
              panel.add(panelVerifier); // on ajoute le panel au panel
              panel.add(panelActions); // on ajoute le panel au panel
              panel.add(panelTheme); // on ajoute le panel au panel
              panel.add(panelQuitter); // on ajoute le panel au panel
              panel.add(panelNombres); // on ajoute le panel au panel
              
              // Construction du panel
              
              this.add(panel); // on ajoute le panel au panel
      


      Tu devrais virer ton JPanel panel et ajouter tes diférents JPanel à this.

      De plus, à moins que je me trompe, mais je vais vérifier rapidement, tu n'as pas besoin d'appeler explicitement repaint sur chacun de tes composants. Comme tes composants sont, enfin seront ajoutés à this, il suffit de faire this.repaint() pour rafraîchir tout le monde.

      • Partager sur Facebook
      • Partager sur Twitter
        25 mars 2009 à 19:56:08

        Effectivement, si le logiciel de kakuro est réussi, je compte le mettre en téléchargement.

        Voilà le nouveau code :

        /*--------------------------------------------------------------------------------------------------------------------|
         |                                                          JKakuro.java                                                 |
         |                                                                                                                    |
         |                                                      créé par wanghao10                                            |
         |                                                                                                                    |
         |--------------------------------------------------------------------------------------------------------------------|
         */
        import java.awt.*;
        import javax.swing.*;
        import javax.swing.border.*;
        
        public class JOptions extends JPanel{
            
            // panels contenus dans ce panel
            JOuvrir panelOuvrir = new JOuvrir(); // panel pour ouvrir une grille
            JVerifier panelVerifier = new JVerifier(); // panel pour vérifier la grille
            JAction panelActions = new JAction(); // panel pour annuler, répéter l'action ou recommencer la grille
            JTheme panelTheme = new JTheme(); // panel pour changer le thème
            JQuitter panelQuitter = new JQuitter(); // panel pour quitter
            JNombres panelNombres = new JNombres(); // panel pour insérer un nombre
            
            // autres
            
            GridLayout dispo = new GridLayout(6, 1); // disposition
            
            public JOptions() { // Constructeur
                
                // Construction du panel
                
                this.setLayout(dispo); // on dispositionne les composants
                this.add(panelOuvrir); // on ajoute le panel au panel
                this.add(panelVerifier); // on ajoute le panel au panel
                this.add(panelActions); // on ajoute le panel au panel
                this.add(panelTheme); // on ajoute le panel au panel
                this.add(panelQuitter); // on ajoute le panel au panel
                this.add(panelNombres); // on ajoute le panel au panel
                
                this.repaint();
            }
        }
        
        class JOuvrir extends JPanel{ // panel qui ouvre une grille
        
            JButton ouvrir = new JButton("Ouvrir"); // boutton ouvrir
            
            public JOuvrir(){ // Constructeur
                
                this.setBorder(BorderFactory.createTitledBorder("Ouvrir :")); // bordure du panel
                add(ouvrir); // on ajoute le boutton
            }
            
            public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                
                g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu1.png"),
                        0, 0, null); // on dessine l'image
            }
        }
        
        class JVerifier extends JPanel{ // panel qui ouvre une grille
            
            JButton verifier = new JButton("Vérifier la grille"); // vérifier la grille
            
            public JVerifier(){ // Constructeur
                
                this.setBorder(BorderFactory.createTitledBorder("Vérifier :")); // bordure du panel
                add(verifier); // on ajoute le boutton
            }
            
            public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                
                g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu2.png"),
                        0, 0, null); // on dessine l'image
            }
        }
        
        class JAction extends JPanel{ // panel qui ouvre une grille
            
            JButton annuler = new JButton("Annuler"); // annuler
            JButton repeter = new JButton("Répéter"); // répéter
            JButton recommencer = new JButton("Recommencer"); // recommencer
            
            public JAction(){ // Constructeur
                
                this.setBorder(BorderFactory.createTitledBorder("Actions :")); // bordure du panel
                add(annuler); // on ajoute le boutton
                add(repeter); // on ajoute le boutton
                add(recommencer); // on ajoute le boutton
            }
            
            public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                
                g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu3.png"),
                        0, 0, null); // on dessine l'image
            }
        }
        
        class JTheme extends JPanel{ // panel qui ouvre une grille
            
            JButton changerTheme = new JButton("Changer de thème"); // changer de thème
            
            public JTheme(){ // Constructeur
                
                this.setBorder(BorderFactory.createTitledBorder("Thèmes :")); // bordure du panel
                add(changerTheme); // on ajoute le boutton
            }
            
            public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                
                g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu4.png"),
                        0, 0, null); // on dessine l'image
            }
        }
        
        class JQuitter extends JPanel{ // panel qui ouvre une grille
            
            JButton quitter = new JButton("Quitter"); // quitter
            
            public JQuitter(){ // Constructeur
                
                this.setBorder(BorderFactory.createTitledBorder("Quitter :")); // bordure du panel
                add(quitter); // on ajoute le boutton
            }
            
            public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                
                g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu5.png"),
                        0, 0, null); // on dessine l'image
            }
        }
        
        class JNombres extends JPanel{ // panel qui ouvre une grille
            
            JButton boutton1 = new JButton("1"); // 1
            JButton boutton2 = new JButton("2"); // 2
            JButton boutton3 = new JButton("3"); // 3
            JButton boutton4 = new JButton("4"); // 4
            JButton boutton5 = new JButton("5"); // 5
            JButton boutton6 = new JButton("6"); // 6
            JButton boutton7 = new JButton("7"); // 7
            JButton boutton8 = new JButton("8"); // 8
            JButton boutton9 = new JButton("9"); // 9
            
            GridLayout dispoN = new GridLayout(3, 3); // disposition pour le panelNombres
            
            public JNombres(){ // Constructeur
             
                this.setLayout(dispoN); // on dispositionne les composants
                this.setBorder(BorderFactory.createTitledBorder("Insérer :")); // bordure du panel
                add(boutton1); // on ajoute le boutton
                add(boutton2); // on ajoute le boutton
                add(boutton3); // on ajoute le boutton
                add(boutton4); // on ajoute le boutton
                add(boutton5); // on ajoute le boutton
                add(boutton6); // on ajoute le boutton
                add(boutton7); // on ajoute le boutton
                add(boutton8); // on ajoute le boutton
                add(boutton9); // on ajoute le boutton
            }
            
            public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                
                g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu6.png"),
                        0, 0, null); // on dessine l'image
            }
        }
        


        J'ai bien sûr renommer le dossier thèmes en thème.

        Même erreurs, tous les panels n'affichent pas l'image de fond et cela change à chaque fois que l'on exécute. Mais cette fois-ci le panelNombres a son image de fond affichée.

        Je ne comprend pas pourquoi.
        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2009 à 21:36:40

          Les comportements imprévisibles sont quasiment tout le temps dus à la non prise en compte des recommandations de Sun.
          Alors pour éviter les problèmes on les suit, logique :)

          Pour ton code actuel, essaie de toujours mettre super.paintComponent(g) en première instruction de chaque méthode paintComponent.

          C'est marrant parce que ton code est assez facile à suivre, je ne vois plus d'incohérences. Ma dernière arme si le truc précedent ne marche pas, c'est les setPreferredSize, sinon je ne vois pas.

          Et dis-nous si ça s'améliore un peu ou pas du tout ^^'
          • Partager sur Facebook
          • Partager sur Twitter
            25 mars 2009 à 21:57:29

            En mettant super.paintComponent(g); ça marche pas
            En mettant super.paintComponent(g) et setPreferredSize(); ça marche pas
            En mettant setPreferredSize(); ça marche pas


            /*--------------------------------------------------------------------------------------------------------------------|
             |                                                          JKakuro.java                                                 |
             |                                                                                                                    |
             |                                                      créé par wanghao10                                            |
             |                                                                                                                    |
             |--------------------------------------------------------------------------------------------------------------------|
             */
            import java.awt.*;
            import javax.swing.*;
            import javax.swing.border.*;
            
            public class JOptions extends JPanel{
                
                // panels contenus dans ce panel
                JOuvrir panelOuvrir = new JOuvrir(); // panel pour ouvrir une grille
                JVerifier panelVerifier = new JVerifier(); // panel pour vérifier la grille
                JAction panelActions = new JAction(); // panel pour annuler, répéter l'action ou recommencer la grille
                JTheme panelTheme = new JTheme(); // panel pour changer le thème
                JQuitter panelQuitter = new JQuitter(); // panel pour quitter
                JNombres panelNombres = new JNombres(); // panel pour insérer un nombre
                
                // autres
                
                GridLayout dispo = new GridLayout(6, 1); // disposition
                
                public JOptions() { // Constructeur
                    
                    // Construction du panel
                    
                    this.setLayout(dispo); // on dispositionne les composants
                    this.add(panelOuvrir); // on ajoute le panel au panel
                    this.add(panelVerifier); // on ajoute le panel au panel
                    this.add(panelActions); // on ajoute le panel au panel
                    this.add(panelTheme); // on ajoute le panel au panel
                    this.add(panelQuitter); // on ajoute le panel au panel
                    this.add(panelNombres); // on ajoute le panel au panel
                }
            }
            
            class JOuvrir extends JPanel{ // panel qui ouvre une grille
            
                JButton ouvrir = new JButton("Ouvrir"); // boutton ouvrir
                
                public JOuvrir(){ // Constructeur
                    
                    this.setBorder(BorderFactory.createTitledBorder("Ouvrir :")); // bordure du panel
                    add(ouvrir); // on ajoute le boutton
                    this.setPreferredSize(new Dimension(275, 96)); // on redimensionne le panel
                }
                
                public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                    
                    super.paintComponent(g); // on peint le panel
                    g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu1.png"),
                            0, 0, null); // on dessine l'image
                }
            }
            
            class JVerifier extends JPanel{ // panel qui ouvre une grille
                
                JButton verifier = new JButton("Vérifier la grille"); // vérifier la grille
                
                public JVerifier(){ // Constructeur
                    
                    this.setBorder(BorderFactory.createTitledBorder("Vérifier :")); // bordure du panel
                    add(verifier); // on ajoute le boutton
                    this.setPreferredSize(new Dimension(275, 96)); // on redimensionne le panel
                }
                
                public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                    
                     super.paintComponent(g); // on peint le panel
                    g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu2.png"),
                            0, 0, null); // on dessine l'image
                }
            }
            
            class JAction extends JPanel{ // panel qui ouvre une grille
                
                JButton annuler = new JButton("Annuler"); // annuler
                JButton repeter = new JButton("Répéter"); // répéter
                JButton recommencer = new JButton("Recommencer"); // recommencer
                
                public JAction(){ // Constructeur
                    
                    this.setBorder(BorderFactory.createTitledBorder("Actions :")); // bordure du panel
                    add(annuler); // on ajoute le boutton
                    add(repeter); // on ajoute le boutton
                    add(recommencer); // on ajoute le boutton
                    this.setPreferredSize(new Dimension(275, 96)); // on redimensionne le panel
                }
                
                public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                    
                     super.paintComponent(g); // on peint le panel
                    g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu3.png"),
                            0, 0, null); // on dessine l'image
                }
            }
            
            class JTheme extends JPanel{ // panel qui ouvre une grille
                
                JButton changerTheme = new JButton("Changer de thème"); // changer de thème
                
                public JTheme(){ // Constructeur
                    
                    this.setBorder(BorderFactory.createTitledBorder("Thèmes :")); // bordure du panel
                    add(changerTheme); // on ajoute le boutton
                    this.setPreferredSize(new Dimension(275, 96)); // on redimensionne le panel
                }
                
                public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                    
                     super.paintComponent(g); // on peint le panel
                    g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu4.png"),
                            0, 0, null); // on dessine l'image
                }
            }
            
            class JQuitter extends JPanel{ // panel qui ouvre une grille
                
                JButton quitter = new JButton("Quitter"); // quitter
                
                public JQuitter(){ // Constructeur
                    
                    
                    this.setBorder(BorderFactory.createTitledBorder("Quitter :")); // bordure du panel
                    add(quitter); // on ajoute le boutton
                    this.setPreferredSize(new Dimension(275, 96)); // on redimensionne le panel
                }
                
                public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                    
                     super.paintComponent(g); // on peint le panel
                    g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu5.png"),
                            0, 0, null); // on dessine l'image
                }
            }
            
            class JNombres extends JPanel{ // panel qui ouvre une grille
                
                JButton boutton1 = new JButton("1"); // 1
                JButton boutton2 = new JButton("2"); // 2
                JButton boutton3 = new JButton("3"); // 3
                JButton boutton4 = new JButton("4"); // 4
                JButton boutton5 = new JButton("5"); // 5
                JButton boutton6 = new JButton("6"); // 6
                JButton boutton7 = new JButton("7"); // 7
                JButton boutton8 = new JButton("8"); // 8
                JButton boutton9 = new JButton("9"); // 9
                
                GridLayout dispoN = new GridLayout(3, 3); // disposition pour le panelNombres
                
                public JNombres(){ // Constructeur
                 
                    this.setLayout(dispoN); // on dispositionne les composants
                    this.setBorder(BorderFactory.createTitledBorder("Insérer :")); // bordure du panel
                    add(boutton1); // on ajoute le boutton
                    add(boutton2); // on ajoute le boutton
                    add(boutton3); // on ajoute le boutton
                    add(boutton4); // on ajoute le boutton
                    add(boutton5); // on ajoute le boutton
                    add(boutton6); // on ajoute le boutton
                    add(boutton7); // on ajoute le boutton
                    add(boutton8); // on ajoute le boutton
                    add(boutton9); // on ajoute le boutton
                    this.setPreferredSize(new Dimension(275, 96)); // on redimensionne le panel
                }
                
                public void paintComponent(Graphics g){ // redéfinition de la méthode qui peint le composant
                    
                     super.paintComponent(g); // on peint le panel
                    g.drawImage(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu6.png"),
                            0, 0, null); // on dessine l'image
                }
            }
            
            • Partager sur Facebook
            • Partager sur Twitter
              25 mars 2009 à 22:30:40

              Okok garde les modifications apportées ;)

              J'ai encore un tour dans mon sac qui est le suivant :
              g.drawImage(new ImageIcon(Toolkit.getDefaultToolkit().getImage("themes/bleu/bleu1.png")).getImage(), 0, 0, null);
              

              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2009 à 21:16:24

                Effectivement ça marche mais sur le jar ça ne marche pas mais je pense que l'erreur est dans la compilation du jar.
                • Partager sur Facebook
                • Partager sur Twitter
                  27 mars 2009 à 2:08:56

                  Ouais alors ce qui est des jar...
                  Moi pour charger des images j'utilise toujours des BufferedImage et ça marche nickel tant à l'affichage qu'à la compression en jar. Donc c'est la seule équipe qui gagne que je peux te conseiller.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 mars 2009 à 14:12:21

                    non en fait il y avait un bug j'ai recompilé lé jar et maintenant ça marche. merci elmh
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Problème d'affichage des images

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown