Insérer une image dans un JLabel avec setIcon

Insérer une image dans un JLabel avec setIcon - Java - Programmation

Marsh Posté le 21-12-2008 à 14:42:31    

Bonjour à tous!
 
Comme dit dans le titre, setIcon ne m'affiche plus l'image que je veux charger dans le label...
Voici l'endroit où ça cloche:
 
public void loadImage(String path, JLabel target)
    {
        ImageIcon picImage = new ImageIcon(path);
       
        if (picImage != null)
        {
            target.setIcon(new ImageIcon(picImage.getImage().getScaledInstance(maxWidth, maxHeight, Image.SCALE_DEFAULT)));
        }
    }
 
Lorsque je charge une image avec une String, l'image ne s'affiche pas dans le label. Par contre, si je mets "icone.png" (par exemple) - qui se trouve dans le projet (ressource) -, l'icone s'affiche...
Je ne vois pas ce qui pose problème avec le chemin absolu...
 
maxWidth et maxHeight sont définies en local, tout comme les JLabel.
 
Même en faisant le strict minimum, quelque chose de tout simple, ça ne marche pas :( :
 
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
 
public class test
{
    public static void main(String args[])
    {
        JFrame frmM = new JFrame();
        JPanel pnlM = new JPanel();
        JLabel lblM = new JLabel();
        ImageIcon imgM = new ImageIcon("X:\\Error.bmp" );
       
        frmM.setVisible(true);
        frmM.setSize(new Dimension(300,300));
       
        frmM.setContentPane(pnlM);
        pnlM.add(lblM);
        lblM.setIcon(imgM);
    }
}
 
Normalement, il ne suffit de mettre que ça...
 
Quelqu'un pourrait-il m'aider s'il-vous-plaît? :(  
La vraie question est "Pourquoi ça marche avec les images du paquetage, et pas avec les autres, même avec le chemin absolu?"... Le chemin est pourtant correct...
 
Merci par avance pour votre aide! :)

Reply

Marsh Posté le 21-12-2008 à 14:42:31   

Reply

Marsh Posté le 21-12-2008 à 16:43:20    

Je viens de voir que setBackground ne marche pas non plus...
 
lblM.setBackground(Color.black);
 
C'est quoi le problème? :(  
Y'a vraiment un truc qui cloche, mais je vois vraiment pas :(

Reply

Marsh Posté le 22-12-2008 à 16:28:48    

[:yoyoz]
Merci pour votre aide! :(

Reply

Marsh Posté le 27-12-2008 à 01:54:34    

Sharkiller a écrit :


Je ne vois pas ce qui pose problème avec le chemin absolu...


cf javadoc

Citation :

Creates an ImageIcon from the specified file. The image will be preloaded by using MediaTracker to monitor the loading state of the image. The specified String can be a file name or a file path. When specifying a path, use the Internet-standard forward-slash ("/" ) as a separator. (The string is converted to an URL, so the forward-slash works on all systems.) For example, specify:
 
    new ImageIcon("images/myImage.gif" )  
 
The description is initialized to the filename string.


http://java.sun.com/j2se/1.4.2/doc [...] ng.String)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 27-12-2008 à 22:46:21    

Autre chose : il faut impérativement ajouter tous les composants d'une frame avant de mettre Visible à true, non ?

Reply

Marsh Posté le 27-12-2008 à 23:58:01    

C'est mieux mais pas obligatoire (m'enfin ce serait nettement mieux dans ce cas précis).

 

Par contre, tout ça devrait être fait dans l'Event Dispatch Thread. :o


Message édité par sielfried le 27-12-2008 à 23:58:54

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed