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 :

[Swing] Insérer une image


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Points : 168
    Points
    168
    Par défaut [Swing] Insérer une image
    Je n'arrive pas à trouver sur le site un tuto pour insérer une image dans un JPanel....
    Si c'est bien comme ça que l'on doit procéder....

    Si quelqu'un connait la marche à suivre... ou l'emplacement d'un tuto.... je suis tout ouïe!

    Merci d'avance!

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935

  3. #3
    Membre habitué Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Points : 168
    Points
    168
    Par défaut
    Franchement je pige pas... j'ai essayer jusqu'à faire un copier colle du code et ....
    je n'arrive à rien....

    voici un bout de mon code:

    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
    public Container getContainer(int i){
     
          global = new JPanel();
          global.setSize(900,600);
          global.setBackground(Color.white);
          global.setLayout(layout);
          switch (i){
     
          case 0:
             panneau1 = new JPanel();
             panneau1.setBounds(1,1,892,543);;
     
             panneau1.setBackground(Color.white);
             panneau1.setBorder(bordure);
     
             titre = new JLabel();
             titre.setFont(police);
             titre.setPreferredSize(new Dimension(890,40));
             titre.setText("                          Bienvenue dans le jeu du PENDU");
     
     
     
             panneau1.add(titre);
     
             Image fond = new Image("image/pendu.png");
     
             // et là je voudrais mettre mon image sous mon titre 
             // Elle est bien  à la racine de mes fichier.classe dans un dossier image
             // Mais je ne comprend pas le truc de paintcomponent().
     
             global.add(panneau1);
     
     
     
          break;
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Et un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JLabel monLabel = new JLabel(new ImageIcon("rhino.gif”));
    ?

  5. #5
    Membre habitué Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Points : 168
    Points
    168
    Par défaut
    Il ne m'affiche rien du tout... mais c'est vrai qu'il est plus simple...pourtant mon chemin est bon!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     JLabel img = new JLabel(new ImageIcon("image/pendu.png"));
             img.setBounds(100,10,420,300);
     
             panneau1.add(img);
    mon image se trouve dans un dossier image à coté de mes fichier.class

    je pige vraiment pas....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Peux-tu tester le programme ci-dessous ?

    Il devrait afficher l'image.
    Et il explique sur la sortie standard s'il trouve ou non le fichier.

    Nicolas

    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
    // appeler le fichier TestImageIcon.java
     
    import java.io.File;
    import javax.swing.*;
     
    public class TestImageIcon extends JFrame {
     
        private String myFileString = "C:/.../merci.png";
     
        public TestImageIcon() {
            if (new File(myFileString).exists()) {
                System.out.println("Je trouve le fichier");
            } else {
                System.out.println("Je NE trouve PAS le fichier !!");
            }
            this.setSize(400,400);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.add(new JLabel(new ImageIcon(myFileString)));
        }
     
        public static void main(String[] args) {
            new TestImageIcon().setVisible(true);
        }  
    }

  7. #7
    Membre habitué Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Points : 168
    Points
    168
    Par défaut
    désolé mais rien ne s'affiche.... je ne pige vraiment pas pourquoi....

    Sinon j'ai essayer ce code mais toujours sans résultat....

    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
    public class image extends JPanel
       8. {
       9.     private String nomFichier;
      10.     private Image image;
      11.     private Dimension dimImage;
      12.     private MediaTracker tracker;
      13.  
      14.     public image (String nomFichier)
      15.     {
      16.         this.nomFichier=nomFichier;
      17.         // bien-entendu nomFichier est un chemin absolu sans oublier les "\" de protection sous waindo
      18.         
      19.         image=getToolkit().getImage(nomFichier);
      20.         // on pointe l'image
      21.  
      22.         tracker=new MediaTracker(this);
      23.         tracker.addImage(image,0);
      24.         // on précise au tracker qu'il doit gérer l'image à l'appel du groupe 0
      25.         
      26.         try{tracker.waitForID(0);} catch (InterruptedException e) {}
      27.         // on déclenche le chargement du groupe 0 et on attend que l'image soit chargée pour passer à la suite
      28.         
      29.         dimImage=new Dimension(image.getWidth(this),image.getHeight(this));
      30.         setPreferredSize(dimImage);
      31.         // j'initialise la taille du composanr à la taille de l'image
      32.     }
      33.  
      34.     public void paintComponent(Graphics g)
      35.     {
      36.         super.paintComponent(g);
      37.         g.drawImage(image,0,0,this);
      38.     }
      39.  
      40.     public Dimension getSize()
      41.     {
      42.         return dimImage;
      43.     }
      44. }
    pour l'appeler ensuite....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    image img  = new image("C:\\image\\pendu.gif");
     
     
             panneau1.add(img);
     
             global.add(panneau1);
             global.add(img);
    ou panneau1 et global sont desz JPanel....

    merci de votre aide car là je commence à péter un plomb...

  8. #8
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Bonjour,

    j'ai essayé ton code: cela marche, la seule modification que j'ai faite est sur la ligne 19

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    image = Toolkit.getDefaultToolkit().getImage(nomFichier);
    Par contre essaie de mettre la première lettre des classes en Majuscule

    exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    javax.swing.JFrame frame = new javax.swing.JFrame("test");
    frame.add(new image("C:\\sacrain.gif"));
    frame.setSize(100,100);
    frame.setVisible(true);

  9. #9
    Membre habitué Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Points : 168
    Points
    168
    Par défaut
    Merci de votre aide mais j'ai fini par trouver....

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Quel était le problème, finalement ?

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Dommage, j'aurais bien voulu avoir la solution qui marche... j'ai essayé les codes fournis, ca marche pas.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Bonjour,

    Comment cela, cela ne marche pas ?
    Que te donne mon code (basique) proposé ci-dessus (#6) ?
    Il affiche qu'il trouve le fichier ET il n'affiche pas l'image ?

    Nicolas

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    mmmh d'accord le problème est là. il ne trouve pas le fichier. mais je croyais qu'il suffisait de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private String myFileString = "images/aaaaa.jpg";
    quand le fichier est dans le répertoire images, qui est au même niveau que ma classe...
    j'ai:
    -Pack_Interface
    ---TestImageIcon.java
    ---images (rep)
    -----aaaaa.jpg

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Bon jai reussi!

    J'ai mis la méthode de chargement d'une image dans une classe spécialisée sur les images GestionImages.class:
    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
     
        public static Image loadImages( JInternalFrame frm, String imageFile ){
             try{
                MediaTracker mTrack = new MediaTracker( frm ); 
                Image image = frm.getToolkit().getImage( GestionImages.class.getResource(imageFile) );
                    //getURL( imageFile ) );
                mTrack.addImage( image, 0 );
                mTrack.waitForAll();
                return image;
             }
             catch (Exception e){
                 System.err.println( " getimages : " + e );
             }
             return null;
        }
    J'ai fait une classe:
    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
     
    import java.awt.Graphics;
    import java.awt.Image;
     
    import javax.swing.JPanel;
     
    public class PanelDeFond extends JPanel {
        Image backGround = null;
        public PanelDeFond( Image backGround )
        {
                 this.backGround = backGround;
                 setOpaque( false );
        }
     
        public void paint( Graphics g )
        {
                 if ( backGround != null )
                     g.drawImage( backGround, 0, 0,getSize().width, getSize().height, this );
                 super.paint( g );
        }
    }
    et enfin j'implémente cette classe là où je définit mon JPanel avec image de fond:
    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
     
    private JFrameAdminSQL frame;
    protected PanelDeFond pan; 
    ...
    public JPanelAdminSQL(JFrameAdminSQL fenetre) {
            try {
                frame = fenetre;
                pan = new PanelDeFond(
                        GestionImages.loadImages(frame, "aaaaa.jpg" ));
                pan.setBounds(new Rectangle(5, 300, 220, 300));
                this.add(pan);
            } catch (Exception e) {
                e.printStackTrace();
            }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insérer une images dans une interface Swing.
    Par yassin0400 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/05/2010, 10h17
  2. [Swing] Comment insérer une image png puis la déplacer?
    Par Cervantes dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 25/05/2006, 19h51
  3. [GNU Pascal] [GRX] Insérer une image
    Par the_guitariste dans le forum Autres IDE
    Réponses: 5
    Dernier message: 28/04/2004, 18h24
  4. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06
  5. [CR7] Insérer une image dynamiquement
    Par yoloosis dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 28/07/2003, 09h54

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