2010-03-20 30 views
6

El siguiente código funciona bien cuando se ejecuta en NetBeans.Establecer imagen de icono en archivo Jar

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage("PlagiaLyzerIcon.png")); 

Sin embargo, una vez que se incorporó al archivo Jar, el icono desapareció.

¿Alguien tiene idea de cuál es el problema? Me di cuenta de que tenía que poner la imagen del icono en el directorio raíz, sin embargo, después de compilar en JAR, el ícono desapareció.

Gracias por cualquier ayuda ...

Hola a todos, el problema se resolvió con el siguiente código,

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("plagialyzer/resources/PlagiaLyzerIcon.png"))); 

funciona una vez compilados en archivo jar.

Respuesta

7

uso

this.getFrame().setIconImage(
new imageIcon(getClass().getClassLoader().getResource("PlagiaLyzerIcon.png")) 
); 

lugar.

Nota:

esta línea sólo funciona si las imágenes están en la raíz del archivo jar. Si no es así, tiene que especificar la carpeta en la cadena:

getResource("yourfolder/PlagiaLyzerIcon.png") 
+0

incluso si configuro la ruta para la carpeta, de nuevo, funciona en el proyecto pero no con el archivo Jar. y, no estoy seguro de cuál es el problema con el código que dio? ¿Problema de constructor? –

+0

me refiero a este código no funciona, this.getFrame() setIconImage. ( nueva imageIcon (getClass() getClassLoader() getResource ("PlagiaLyzerIcon.png")) ..); –

+1

ooo ahora veo el problema ... this.getFrame(). SetIconImage (new imageIcon (getClass(). GetClassLoader(). GetResource ("PlagiaLyzerIcon.png")). GetImage()); debería ser trabajo – Hector

0

¿Especificó la ruta de compilación a sus iconos en las opciones de Netbean antes de exportar el JAR? En Eclipse se hace agregando una carpeta de origen dentro de la ruta de compilación de Java como se muestra en este screenshot. Debería ser de la misma manera en Netbeans?

2

Esto se debe a que el IDE de Netbeans tiene una ruta de clases diferente, que cuando se ejecuta el archivo jar autónomo (sin Ant).

asuma que su proyecto de Netbeans es en la ubicación /project/:

La ruta de clases es: /project/build/classes/ y la raíz /project/ proyecto. Si sus íconos están almacenados en: /project/myicons/, entonces son parte del classpath, ya que /project/ también. Pero cuando construya su proyecto, solo los archivos en /project/build/classes/ eventualmente terminarán en el archivo jar, estos archivos son "compilados" desde /projcet/src/.

Solución:

mover sus iconos en una fuente paquete: /project/src/myicons/

O bien, agregar la carpeta /project/myicons/ a sus fuentes (haga clic con su proyecto -> Propiedades -> Fuentes -> añadir su carpeta allí)

+0

@Pindatjuh, en realidad me he movido a una carpeta como sugirió, pero el código, this.getFrame(). SetIconImage (Toolkit.getDefaultToolkit(). GetImage ("PlagiaLyzerIcon.png")); parece funcionar solo en el directorio raíz del proyecto ... –

1

Muchas gracias ...

Aquí el código que funciona para mí !!!!

BufferedImage image = null; 

    try { 
     image = ImageIO.read(getClass().getClassLoader().getResource("images/frame.png")); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


    super.setIconImage(image); 
0

El uso de NetBeans como yo, sólo hay que poner el logotipo (en mi caso mylogo.png) dentro de src/en la carpeta del proyecto. Asegúrese de que el tamaño sea de 32 x 32 píxeles para garantizar la mejor calidad para el ícono. No pude configurar las imágenes .ico como mi icono JFrame pero .png funcionó bien. Al extender JFrame, me puse directamente a mi icono de jarra con:

Image getIcon() 
{ return Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("mylogo.png")); } 

setIconImage(getIcon()); 

Después de limpieza y construcción frasco, el icono del archivo jar aún no se cambia (siendo el icono predeterminado frasco), pero cuando se ejecuta el archivo del tarro de la el ícono en la barra de título y la barra de tareas será su ícono personalizado. Puede cambiar el icono del archivo jar creando accesos directos y cambiando el ícono para ese acceso directo. La mejor resolución para el icono de acceso directo es 512 x 512 píxeles .ico

Cuestiones relacionadas