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 :

Afficher une image dans un JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 72
    Par défaut Afficher une image dans un JPanel
    Bonjour,
    je fais une programme qui me permet de rechercher une photo dans un dossier puis de l'afficher dans un JPanel. Pour cela j'utilise une instance d'une classe Screen que j'ai défini moi même et que j'ai fait dérivé de JPanel et puis j'ai défini dans cette classe deux fonctions (setBackgroundIcon(ImageIcon v) et getBackgroundIcon()) qui me permettent d'accéder et d'assigner une ImageIcon comme image du background du JPanel (instance de Screen).
    La maière dont j'ai fait l'assignation est la suivante:

    ....................
    private Screen pan = new Screen();
    ...............................
    pan.setBackgroungIcon(new ImageIcon("images/h.gif"));
    ............................

    "images" est un package que j'ai défini moi dans le package contenant les classes.

    Cependant mon problème aucun problème ne m'est signalé mais l'image n'apparait dans le JPanel pan que j'ai défini. Je vous signale l'image à le même taille le pan(en pixels bien entendu).

    Qui peut m'expliquer ce qui se passe svp?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 159
    Par défaut
    Essaye de réécrire la méthode paint component et là tu dessines ton image.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class MonJPanel extends JPanel{
     
        Image image;
     
        @Override
        public void paintComponent(Graphics g) {
            g.drawImage(image, 0, 0, null);
        }
     
    }
    Vas aussi voir la FAQ: http://java.developpez.com/faq/gui/?...general_images

  3. #3
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Salut,

    Sinon t'as JXImagePanel de swingx plus d'infos : http://www-igm.univ-mlv.fr/~dr/XPOSE...abs/swingX.php

    et pour le code c'est 100 fois plus simple... et ça sert à rien de réinventer la roue............

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    imagePanel = new org.jdesktop.swingx.JXImagePanel();
    		try {
        		Image image = ImageIO.read(
    				getClass().getResource("aerith_logo.png"));
    			imagePanel.setImage(image);
    		} catch (IOException ex) {
    	}

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 72
    Par défaut
    Ok je vois ce dont vous me parlez j'essarai de le faire pour voir.
    Cependant je veux seulement vous signaler que j'ai déclaré deux classes:
    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
    public class Screen extends JPanel{
                   private ImageIcon icon = new ImageIcon();
     
                   public void setBackgroundIcon(ImageIcon v){
                       this.icon = v;
                   }
                   public ImageIcon getBackgroundIcon(){
                      return icon;
                   }
               }
               **********************************************
     
               public class MainFrame extends JFrame{
                  private Screen pan = new Screen();
                  private JButton bouton = new JButton("Afficher la photo");
                  private Container c = getContentPane();
     
                  pan.setSize(new Dimension(250, 250));
                  bouton.addActionListener(
                            new ActionListener(){
                            public void actionPerformed(ActionEvent evt){
                              pan.setBackgroundIcon(getClas().getResource(
                                                                "images/h.gif"));
                            }
                  );
     
                c.add(bouton);
                c.add(pan);
               }
    Voilà en gros les deux classes que j'ai implémenté et qui m'ont généré ce problème c'est à dire qu'il n' y a pas d'erreur dans le code mais l'image n'apparait du tout dans pan.

    Alors en vous basant sur cela est ce que vous pouvez mz situer où se trouve exactement le problème qui m'empêche de voir l'image? Merci!

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Il n'y a pas de methode paint ?

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 159
    Par défaut
    hum... D'abord tu n'ajoutes ni le boutton ni le JPanel a ton JFrame.
    Ensuite, que je sache un JPanel d'admet pas directement un icone, si tu veux essayes le JLabel qui lui en accepte un. Si tu veux vraiment utiliser un JPanel, tu devras utiliser l'autre solution qu'on te propose: réecrire le painComponent.

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

Discussions similaires

  1. Afficher une image dans jpanel
    Par lostsoul dans le forum Général Java
    Réponses: 6
    Dernier message: 12/05/2009, 04h07
  2. afficher une image dans un JPanel
    Par DiverSIG dans le forum Débuter
    Réponses: 5
    Dernier message: 11/02/2009, 16h07
  3. Debutant,comment afficher une image dans un Jpanel
    Par dilamax_1 dans le forum Graphisme
    Réponses: 1
    Dernier message: 27/04/2008, 16h05
  4. Afficher une image dans un JPanel
    Par yaya0057 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 04/04/2007, 00h10
  5. comment afficher une image dans un jpanel ?
    Par 180degrés dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/04/2006, 15h33

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