Insérer une image dans un JLabel avec setIcon - Java - Programmation
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
Marsh Posté le 27-12-2008 à 01:54:34
Sharkiller a écrit : |
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: |
http://java.sun.com/j2se/1.4.2/doc [...] ng.String)
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 ?
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.
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!