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

Agents de placement/Fenêtres Java Discussion :

charger une ImageIcon dans un JLabel


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Par défaut charger une ImageIcon dans un JLabel
    Salut tout le monde,

    Ce que j'aimerai faire est mettre une image gif animée dans un JLabel histoire de l'afficher juste devant mon bouton "connxion" afin de rendre plus vivante mon appli de messagerie JAVA.
    Le problème est que ça ne m'affiche pas l'image dans le label.
    A noter que ça marche parfaitement avec d'autres images (même des .png et .jpg et d'autres .gif) mais pas avec plusieurs icones de chargement .gif.
    Je vous en joint quelques unes si vous voulez tester par vous-mêmes..(fichier-join en bas) .

    Pour le code j'ai créé une petite méthode statique pour construire une ImageIcon:
    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
    public static ImageIcon getImageIcon(String imageRelativePath){
    		if(imageRelativePath != null && imageRelativePath != ""){
    			//Look up for the image.
    			try{
    				URL imageURL =  ChatMenuItem.class.getResource(imageRelativePath);
    				ImageIcon iIcon = new ImageIcon(imageURL);
     
                                    // if image is correctly loaded 
    				if(iIcon.getImageLoadStatus() == MediaTracker.COMPLETE){ 
    					return iIcon;
    				}
    			}
    			catch(NullPointerException e){
    				e.printStackTrace();
    			}
    		}
    		return null;
    	}

    Et je construit naturellement le label
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new JLabel(MyToolsClass.getImageIcon("loading.gif"));
    Si quelqu'un a une idée
    Images attachées Images attachées     

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     JLabel test = new JLabel(new ImageIcon("./data/img/test.gif"));
    panel.add(test);
    Bâ ça marche très bien chez moi ...
    Tu peux aussi mettre directement ton image dans ton JButton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JButton test = new JButton("Connexion",new ImageIcon("./data/img/test.gif"));
    Je ne vois pas où est le problème

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     JLabel test = new JLabel(new ImageIcon("./data/img/test.gif"));
    panel.add(test);
    Bâ ça marche très bien chez moi ...
    Tu peux aussi mettre directement ton image dans ton JButton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JButton test = new JButton("Connexion",new ImageIcon("./data/img/test.gif"));
    Je ne vois pas où est le problème
    Le problème est avec les images que j'ai mises en pièces jointes dans mon premier post.

    J'ai bien signalé que mon code marchait parfaitement avec d'autres images .gif et même d'autres formats (.png .jpg)

    Merci tout de même d'avoir répondu

  4. #4
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    mettre une image gif animée dans un JLabel
    Et c'est pas animé ?
    Normal c'est à toi de gérer l'animation .

  5. #5
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    J'ai répondu un peu vite . Pris d'un doute, j'ai testé et ça fonctionne sans problème .
    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
    package pkg;
     
    import java.awt.BorderLayout;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.SwingUtilities;
     
    public class TestImage extends JFrame {
    	private static final long serialVersionUID = 1L;
     
    	public TestImage() {
    		super("TestImage");
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
     
    		getContentPane().add(new JLabel(new ImageIcon(ClassLoader.getSystemResource("pkg/img/loading24.gif"))), BorderLayout.SOUTH);
     
    	}
     
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater(new Runnable() {
    			@Override
    			public void run() {
    				JFrame frame = new TestImage();
    				frame.setSize(320, 240);
    				frame.setLocationRelativeTo(null);
    				frame.setVisible(true);
    			}
    		});
    	}
    }

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Par défaut
    Citation Envoyé par ngpub Voir le message
    J'ai répondu un peu vite . Pris d'un doute, j'ai testé et ça fonctionne sans problème .
    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
    package pkg;
     
    import java.awt.BorderLayout;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.SwingUtilities;
     
    public class TestImage extends JFrame {
    	private static final long serialVersionUID = 1L;
     
    	public TestImage() {
    		super("TestImage");
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
     
    		getContentPane().add(new JLabel(new ImageIcon(ClassLoader.getSystemResource("pkg/img/loading24.gif"))), BorderLayout.SOUTH);
     
    	}
     
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater(new Runnable() {
    			@Override
    			public void run() {
    				JFrame frame = new TestImage();
    				frame.setSize(320, 240);
    				frame.setLocationRelativeTo(null);
    				frame.setVisible(true);
    			}
    		});
    	}
    }
    Merci pour ta réponse, content que ça marche chez toi
    Mais je ne vois pas ce qu'il y à de plus que ce que j'utilise comme loader

    D'autant plus que, comme je l'avais précisé, ça MARCHE TRES BIEN chez-moi avec toutes sortes d'images (même une gif animée) . Mais bizarrement pas avec celles que je veux (pièces jointes au premier poste)
    .. je laisse de côté pour l'instant

  7. #7
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Citation Envoyé par nickyla Voir le message
    Le problème est avec les images que j'ai mises en pièces jointes dans mon premier post.
    J'ai bien signalé que mon code marchait parfaitement avec d'autres images .gif et même d'autres formats (.png .jpg)
    Merci tout de même d'avoir répondu
    Et pourtant, j'ai bien testé avec une des images que tu a mis en pièce jointe.
    Et ça bouge bien

  8. #8
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    Et pourtant, j'ai bien testé avec une des images que tu a mis en pièce jointe.
    Et ça bouge bien
    +1

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    Et pourtant, j'ai bien testé avec une des images que tu a mis en pièce jointe.
    Et ça bouge bien
    Merci de ta réponse, et c'est malheureusement ce qu'a déja confirmé ngpub

    J'ajouterai une petite précision. C'est que mon image est bien chargée (vérification facile avec ma méthode getImageIcon) et en plus il y a bien un espace de la taille de mon image qui est réservé dans ma fenêtre de test. C'est juste que contrairement aux autres images... celles que je veux ne semblent pas s'afficher.
    Je pense à une histoire de update de l'élément ImageIcon mais je ne ss pas certain ...

  10. #10
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Salut,

    Le JXBusyLabel dans la librairie SwingX de SwingLabs fait ça en Java2D en proposant des méthodes #setBusy(boolean) et #isBusy()
    Peut-être est-ce plus sympa que d'utiliser un ficher image.

    ++

Discussions similaires

  1. [ifrmaes]Charger une page dans une iframe
    Par Destampy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/05/2005, 15h54
  2. [javascript]charger une page dans une cellule
    Par Destampy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/05/2005, 17h21
  3. [PL/SQL] Charger une table dans une collection
    Par nosnoss dans le forum Oracle
    Réponses: 10
    Dernier message: 03/03/2005, 17h56
  4. charger une scene dans la memoire de la carte video
    Par Arnaudv6 dans le forum OpenGL
    Réponses: 10
    Dernier message: 11/09/2004, 01h44
  5. [ServletContext]Charger une ressource dans la servletContext
    Par lalou33 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 25/06/2004, 14h37

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