2010-12-23 19 views
13

Estoy tratando de agregar un icono externo desde un archivo * .ico a una ventana que estoy creando usando la ventana de diseño de WindowBuilder. Puedo seleccionar el shell, que muestra un campo de propiedades de "imagen". alt text Eso muestra el cuadro de diálogo selector de imagen: alt text¿Cómo agrego un icono como recurso classpath a una ventana SWT creada con WindowBuilder?

¿Cómo puedo hacer mi icono aparece en este menú como un recurso ruta de clase? La imagen funciona si se proporciona una ruta absoluta, pero no quiero usar esa opción en mi aplicación.

Gracias!

Respuesta

27

Para agregar fácilmente un ícono a mi classpath, encontré el ícono deseado, lo hice clic derecho, seleccioné "copiar", luego fui a uno de los paquetes de mi proyecto en Eclipse, hice clic derecho y seleccioné "pegar". La siguiente vez que abrí el cuadro de diálogo del selector de imágenes, mi paquete local tenía el icono enumerado como un recurso classpath disponible, y lo elegí. image chooser

Pude exportar el proyecto a un JAR ejecutable, y el ícono aún funcionaba.

+1

Pude conseguir que los archivos de imagen se mostraran correctamente como un recurso de ruta de clases, pero si los seleccioné para mi icono de JLabel, no aparecerían. Si selecciono la imagen como una ruta absoluta, aparece. Confirmé que los archivos existen en su paquete. ¿Cual podría ser el problema? – MultiGuy

2

No sé cómo hacer esto en WindowBuilder, pero se puede especificar un recurso Image mientras que la construcción de la vía ShellsetImage() o setImages(). Sugiero usar este último, ya que proporciona a la plataforma varios iconos de resolución, incluidos el cuadro de control de la ventana, la barra de tareas de Windows y la lista alt + tab.

Take a look at this snippet.

que cargarlo desde un recurso:

final Image small = new Image(shell.getDisplay(), 
     "resources/images/icon_16.png"); 
final Image large = new Image(shell.getDisplay(), 
     "resources/images/icon_32.png"); 
final Image[] images = new Image[] { small, large }; 
shell.setImages(images); 

En este ejemplo, tengo una subcarpeta "recursos", que contiene "imágenes", a continuación, dos PNG. Especificar un recurso JAR debería funcionar de forma similar, aunque no lo he probado.

6

La solución que creo que está funcionando es crear un contenedor que contenga sus imágenes y agregarlo a su ruta de clase. Luego podrá elegirlos desde el diálogo en su segunda captura de pantalla.

Recuerdo que esto solía funcionar con directorios que están en su ruta de compilación. Ahora parece estar forzado a estar en un paquete jar.

+0

¿Cómo se crea un archivo jar que contiene solo una imagen? – Zoot

+2

un archivo jar es simplemente un archivo zip. use cualquier utilidad de archivo (prefiero 7-zip) para crear un archivo zip y cambiar su extensión a jar. –

3

Para agregar cualquier tipo de imagen compatible a su proyecto, simplemente haga clic derecho en la carpeta 'src' de su proyecto y Nuevo ... Paquete ... y bajo Nombre, por ejemplo, 'recursos'. Después de eso, solo necesitas copiar tus imágenes allí. Cuando exporta el proyecto a un JAR configurable, todos los recursos van juntos y se ejecuta correctamente.

0

En Eclipse Juno 4.2. el selector de imágenes a menudo no muestra la carpeta de recursos (por ejemplo, de un proyecto estructurado por Maven: src/main/resources. Presumiblemente, se trata de un error.

Si elimina y luego agrega la carpeta de recursos explícitamente con la opción incluir en la ventana Java Build Path (pestaña de origen), aparecerá. Incluso después de eliminar la opción "incluir" y volver a establecerla en "Todo", seguirá apareciendo.

Por supuesto, puede eliminar y agregar directamente desde el menú contextual, al hacer clic derecho en la carpeta src/main/resources.

1

En mi caso, WindowBuilder reconocieron el formato * .ico, pero no reemplazó el icono de Java por defecto con mi icono personalizado. Fue solo cuando convertí el * .ico a * .png (through this handy online tool) que WindowBuilder finalmente cambió el icono predeterminado de Java a mi "icono" personalizado, a pesar de que realmente es un PNG. Esperaba que WindowBuilder pudiera reconocer el formato ICO.

Cuestiones relacionadas