Lamento confirmar sus temores, pero no se puede hacer en Java.
Dado que Windows Explorer es el que tiene el control, Icon Overlay es una especie de complemento. Tiene que implementarse como una DLL (no una JNI sino una verdadera DLL nativa) y registrada en el Registro de Windows. Como vio en el artículo CodeProject, su DLL tiene que implementar una interfaz específica - IShellIconOverlayIdentifier
.
Tome por ejemplo el TortoiseSVN implementation.
DLL de TortoiseSVN se carga por el explorador y se une a su proceso:
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /* lpReserved */)
{
...
if (dwReason == DLL_PROCESS_ATTACH)
...
Con el fin de hacer esto en Java que se necesita para escribir un archivo DLL que se carga la JVM y el JAR que sería una excesivo
En cuanto a la superposición de icono de bandeja, su aplicación Java es la que tiene el control para que se pueda hacer.
Buena pregunta, pero yo creo que no es posible hacer una cosa tal como los programas de Java se ejecutan en la máquina virtual Java, que los desacopla del sistema operativo en el que se ejecutan. No publicar como respuesta ya que no estoy seguro. –
Probablemente necesitará usar JNI para saltar al código nativo para realizar el cambio (es decir, si es posible a través de algún WinAPI). – Java42
@ W.Goeman sí, parece difícil o imposible en Java, pero creo que debería haber una manera fácil de hacerlo. No lo sé, pero tal vez haya una biblioteca para la superposición de iconos en java o etc. – baharcglr