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 :

affichage d'une image avec du swing


Sujet :

AWT/Swing Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut affichage d'une image avec du swing
    Bonjour voila g lu pas mal de truc sur le forum, j'ai essayé pas mal de truc mais impossible d'afficher une image dans mon interface graphique.
    Donc si quelqu'un pouvait me filer un aide un peu plus perso sa serait cool.
    Voila mon code bon c pas le truc final c juste pour faire des test pour réussir à afficher ce que je veux mais sa marche pas.
    Merci de regarder et me dir ce ki cloche.
    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
     
    package paqIHM;
     
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.WindowConstants;
     
     
    public class testImg extends javax.swing.JFrame {
     
    	private static final long serialVersionUID = -4713672432547856626L;
    	private JLabel jLabel1;
     
    	public static void main(String[] args) {
    		testImg inst = new testImg();
    		inst.setVisible(true);
    	}
     
    	public testImg() {
    		super();
    		init();
    	}
     
    	private void init() {
    		try {
     
    			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    			JPanel pannel = new JPanel(); 
    			ImageIcon image = new ImageIcon("images/test.gif");
    			jLabel1 = new JLabel("salut",image, JLabel.CENTER);
    			pannel.add(jLabel1);
    			this.getContentPane().add(pannel);
    			pack();
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    }

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Premièrement, appliques toi à écrire correctement, merci.

    Pour ce qui est de ton problème, penses à spécifier un Layout pour ton JPanel.

    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
     
    private void init() {
    		try {
            this.getContentPane().setLayout(new FlowLayout());
    	setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    	JPanel pannel = new JPanel(); 
    	ImageIcon image = new ImageIcon("images/test.gif");
    	jLabel1 = new JLabel("salut",image, JLabel.CENTER);
    	pannel.add(jLabel1);
    	this.getContentPane().add(pannel);
    	pack();
     
    } catch (Exception e) {
    	e.printStackTrace();
    }
    }
    Pour plus de précision sur les Layout, regardes dans la FAQ. Merci et bonne chance.

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 032
    Points : 1 052
    Points
    1 052
    Par défaut
    Il faut d'abord créer une nouvelle variable dans ta classe testImg :
    Après ta ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageIcon image = new ImageIcon("images/test.gif");
    il faut que tu accèdes au "contexte graphique" de ton image.C'est par ce biais que se fait le travail. Il faut alors que tu ajoutes les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    this.image = image;
    Graphics g = image.createGraphics();
    g.drawImage(img, 0, 0, image.getWidth(null), image.getHeight(null), null);
    repaint();
    maintenant, pour que ton image se retrace automatiquement (après qu'une autre fenêtre soit passée par dessus, par exemple), il faut que tu surcharges la méthode "paintComponent" par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            pannel.g.drawImage(image, 0, 0, null);
    Voilà, ça devrait fonctionner.

    Maintenant, en plus propre, il faut que tu étendes la class JPanel et que ce soit dans cette classe qur tu surcharges la méthode "paintComponent".

    Cordialement.

    Pierre

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour le coup de main, mais je ne trouve pas la méthode createGraphics() de la classe ImageIcon et même Image alors je fait comment?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    this.image = image;
    Graphics g = image.createGraphics();
    g.drawImage(img, 0, 0, image.getWidth(null), image.getHeight(null), null);
    repaint();

  5. #5
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Citation Envoyé par ChPr
    Après ta ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageIcon image = new ImageIcon("images/test.gif");
    il faut que tu accèdes au "contexte graphique" de ton image.C'est par ce biais que se fait le travail. Il faut alors que tu ajoutes les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    this.image = image;
    Graphics g = image.createGraphics();
    g.drawImage(img, 0, 0, image.getWidth(null), image.getHeight(null), null);
    repaint();
    maintenant, pour que ton image se retrace automatiquement (après qu'une autre fenêtre soit passée par dessus, par exemple), il faut que tu surcharges la méthode "paintComponent" par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            pannel.g.drawImage(image, 0, 0, null);
    Voilà, ça devrait fonctionner.
    Il affiche son image par l'intermédiaire d'un JLabel dans son exemple, pas besoin de faire tout ce que tu proposes .

    Son problème c'est qu'il ne spécifie pas de Layout, l'affichage est erroné. C'est tout ce que je vois, je n'ai pas testé son code. Vérifie également l'existence de ton image, et la validité du chemin d'accès. Bonne chance.

  6. #6
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 032
    Points : 1 052
    Points
    1 052
    Par défaut
    Désolé, je n'avais pas fait attention au fait que tu chargeais un type ImageIcon et non pas un type Image. Remplace la ligne suivante :
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.image = image.getImage();
    ça devrait aller beaucoup mieux.

    Cordialement.

    Pierre

  7. #7
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Mais puisqu'il affiche son ImageIcon grâce à un JLabel, ton code est inutile ! C'est moi qui n'a pas compris ou vous ne lisez pas ce que je dis ?

    Il manque un layout à son JPanel, c'est tout...

    J'ai l'impression que vous lisez pas ce que je dis, tu as testé ce que je t'ai proposé au moins ?

    Merci...

  8. #8
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    essaye de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jLabel1 = new JLabel();
    jLabel1.setIcon(new ImageIcon("image.gif"));
    pannel.add("Center", jLabel1);

  9. #9
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 032
    Points : 1 052
    Points
    1 052
    Par défaut
    Citation Envoyé par Janitrix
    ... ou vous ne lisez pas ce que je dis ? ...
    Si, mais j'étais en train de chercher une solution puis ce qui n'allait pas dans ma réponse alors que tu avais déjà répondu.

    Cordialement.

    Pierre

Discussions similaires

  1. [PHP 4] Affichage d'une image avec chemin contenu dans une variable
    Par terrysharp dans le forum Langage
    Réponses: 1
    Dernier message: 16/07/2009, 14h54
  2. Problème d'affichage d'une image avec Glade.
    Par tistri dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 21/04/2007, 18h56
  3. affichage d'une image avec les servlets
    Par hassanovich dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 03/11/2006, 10h35
  4. Affichage d'une image avec changement quand le pointeur est dessus
    Par mauriiice dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/09/2006, 20h21
  5. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59

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