2012-06-28 48 views
8

Estoy tratando de hacer un juego muy básico con Java y estoy teniendo problemas para mostrar una imagen en un JFrame. Ha funcionado en el pasado para mí y ahora no, no puedo ver lo que hice mal.Java agregando ImageIcon a JLabel

He intentado imprimir el directorio de trabajo actual y cambiar dónde obtengo mi imagen para que coincida con eso. Es probable que el problema no sea obtener la imagen, ya que mi (buscador de archivo o lector de archivos o algo así) puede encontrarlo sin problemas, pero no puedo agregarlo correctamente (ImageIcon) al JLabel, o al JFrame.

Este es mi código ...

JFrame frame = new JFrame("no image"); 
ImageIcon image = new ImageIcon("C:/Documents and Settings/user/Desktop/hi/xD/JavaApplication2/image.png"); 
JLabel imagelabel = new JLabel(image); 
frame.add(imagelabel); 

El JFrame ha sido setVisible(true) y pack().

¿Podría alguien ayudarme a entender lo que está mal?

+0

Por favor, echar un vistazo a este ejemplo, [¿Cómo añadir imágenes a su proyecto] (http://stackoverflow.com/questions/9864267/load-icon-image-exception/9866659#9866659) o siga estos [pasos] (http: // ga gandeepbali.uk.to/gaganisonline/webpages/makejareclipse.html) –

+0

Miré esos ejemplos, no ayudaron – user1486826

+0

Simplemente coloque su imagen al lado de su archivo .class, y úselo como este ImageIcon image = new ImageIcon (getClass () .getResource ("yourImage.extension")) ;. Ese enlace tiene que funcionar, ya que es la manera correcta de poner sus imágenes en su proyecto. ¡Espero que hubieras recorrido todos los pasos mencionados en eso! –

Respuesta

12

Su problema radica aquí:

ImageIcon image = new ImageIcon("C:/Documents and Settings/user/Desktop/hi/xD/JavaApplication2/image.png"); 
    JLabel imagelabel = new JLabel(character); 

Se crea una "imagen" ImageIcon sino crear JLabel con "carácter".

Debería ser:

JLabel imagelabel = new JLabel(image); 
+0

lo siento, en mi código actual son los mismos, me olvidé de reemplazar el personaje con la imagen. – user1486826

3

intento,

ImageIcon image = new ImageIcon("c:\\path\\image.png"); 
imagelabel = new JLabel(character, image, JLabel.CENTER); 
frame.add(imagelabel); 

Tome un vistazo a Tutorial - How to use Icons

+0

He visto el tutorial muchas veces, no veo lo que hice mal. – user1486826

-1
import javax.awt.*; 
import java.awt.*; 
import java.awt.event*; 

//class name image 
class image { 
    image() 
    //constructor { 
     Frame f=new Frame("Image"); 
     //Frame 
     f.setSize(500,500); 
     f.setVisible(true); 
     Panel p =new Panel(); 
     //Panel 
     f.add(p); 
     p.addLayout(null); 
     ImageIcon ii=new ImageIcon("set your image path"); 
     //ImageIcon is used to image Display . 
     Label l =new Label(ii); 
     p.add(ii); 
     p.setBounds(set you bounds); 
     //Like that(20,20,500,40); 
    } 

    public static void main(String [] args) { 
     image obj = new 
    } 
} 
+2

Agregue algunas explicaciones sobre su código y sobre eso OP necesita su código;). –