¿Cómo agrego un icono como un recurso de ruta de clases a una ventana creada con SWT WindowBuilder?

StackOverflow https://stackoverflow.com/questions/4521973

Pregunta

Estoy intentando añadir un icono externo desde un archivo .ico * a una ventana que estoy creando el uso de la ventana de diseño WindowBuilder. Puedo seleccionar la cáscara, lo que nos lleva a un campo de propiedades "Imagen". texto alternativo Eso nos lleva a la casilla de diálogo selector de imagen: text alt

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

Gracias!

¿Fue útil?

Solución

To easily add an icon to my classpath, I found my desired icon, right clicked it, selected "copy", then went to one of the packages of my project in Eclipse, right clicked, and selected "paste". The next time I brought up the image chooser dialog box, my local package had the icon listed as an available classpath resource, and I chose it. image chooser

I was able to export the project to a runnable JAR, and the icon still worked.

Otros consejos

The solution I find to be working is to create a jar containing your images and add it to your class path. Then you will be able to choose them from the dialog in your second screen shot.

I remember this used to work with directories that are in your build path. Now it seems to be forced to be in a jar package.

To add any kind of supported image to your project, just right click on 'src' folder of your project and New... Package... and under Name give, for example, 'resources'. After that you only need to copy your images there. When you export the project to a runable JAR, all resources go together and Runs fine.

I don't know how to do this in WindowBuilder, but you can specify an Image resource while building the Shell via setImage() or setImages(). I suggest using the latter, because it provides the platform with various resolution icons, including the window's control box, the Windows taskbar, and alt+tab list.

Take a look at this snippet.

To load it from a resource:

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);

In this example, I have a subfolder "resources", containing "images", then two PNGs. Specifying a resource JAR should work in a similar way, although I haven't tried it.

In my case, WindowBuilder recognized the *.ico format but didn't replace the default Java icon with my custom icon. It was only when I converted the *.ico to *.png (through this handy online tool) that WindowBuilder finally changed the default Java icon to my custom "icon", even though it's really a PNG. I expected WindowBuilder to be able to recognize the ICO format.

In Eclipse Juno 4.2. the Image chooser often doesn't show the resource folder (e.g. from a Maven-structured project: src/main/resources. Presumably that is a bug.

If you remove and then add the resource folder explicitly with the include option in the Java Build Path Window (Source Tab), it will pop up. Even after removing the "include" option and setting it back to "All", it will still show.

Of course, you may remove and add directly from the context menu, when right-clicking the src/main/resources folder.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top