2009-12-30 35 views
8

En mi proyecto tengo 2 paquetes. imágenes - contienen imágenes y notificación - contienen archivos de JavaObtener imagen de la ruta relativa

En la notificación/main.java consigo objeto de imagen de la imagen utilizando este código

Image image = Toolkit.getDefaultToolkit().getImage("/images/key-16x16.png"); 

y no puedo obtener la imagen.

Cómo puedo solucionar este error.

Respuesta

17

estoy usando Netbeans para desarrollar aplicaciones de escritorio Java y he resuelto mi problema.

Image image = new ImageIcon(this.getClass().getResource("/images/bell-icon16.png")).getImage(); 

"esto" es una clase extiende JFrame

+0

ImageIcon(). getImage() es una buena solución! funciona para mí también aquí usando Windows 64bit. : D – gumuruh

7

/ significa una ruta absoluta, guarde las aplicaciones web Java donde / significa relativo al contexto. Por lo tanto, sugeriría utilizar URL relativa, significa deshacerse de eso / al frente, y luego proporcionar la ruta correcta.

En caso de que, incluso si no puede resolverlo, intente crear un archivo en la misma ruta que está buscando la imagen. De esta manera, sabrá dónde mira exactamente y dónde debe mirar.

+0

no pude resolver mi problema durante dos horas ... gracias – DGund

1

También puede probar

Image image = new ImageIcon(path).getImage(); 
1

También he estado en esto y resulta que es necesario crear un paquete dentro de la carpeta src. para instancias si crea un paquete llamado imágenes dentro de la carpeta src, su ruta relativa será /images/yourimage.png.

¡Observe que la barra inclinada (/) debe estar allí! información más aquí http://forums.macrumors.com/showthread.php?t=533922

que trabajó para mí

1
Toolkit tk = Toolkit.getDefaultToolkit(); 
Class<? extends JFrame> j = YOURJFRAME.getClass(); 
Image image = tk.createImage(j.getResource("/images/bell-icon16.png")); 

Trate de que el código, si usted tiene un JFrame que va a funcionar. Si usted tiene un Applet, a continuación, sólo tiene que utilizar

Toolkit tk = Toolkit.getDefaultToolkit(); 
Image image = tk.createImage("images/bell-icon16.png"); 

Con applets que nunca desea utilizar el/al principio, pero si usted tiene un JFrame, y está utilizando getResource has de obtener la/en el principio del camino

+0

para este, lo intenté dentro de netbeans funciona.Pero una vez que empaco la aplicación en un instalador de paquete externo, parece que la referencia no funciona correctamente. :(no sé por qué. – gumuruh

+0

@gumuruh ¿qué instalador de aplicaciones? Puede que no sea capaz de ayudar, pero lo que hace probablemente cambie lo que necesita hacer. – daboross

+0

nevermind 'DaboRoss, porque ya sigo las soluciones @ChanPye anteriores y funciona.: D instalador de aplicaciones lo que escribí la última vez es Advanced Installer.: D – gumuruh

0
SwingResourceManager.getImage(YourClass.class,"key-16x16.png"); 

El método getIcon volverá Icono tan similares

1

En caso que la solución anterior no funciona, intente esto (que trabajó para mí):

Image image = Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("/Images/bell-icon16.png")); 
0
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("../resources/MainIcon.png"))); 
Cuestiones relacionadas