ventanas undecorated mover ejemplos crear como clase bordes java winapi jni window-managers window-management

java - undecorated - mover jframe sin bordes



¿Cómo usar Java para mover ventanas de Windows en la pantalla? (1)

Si el propósito es tener un gestor de ventanas rápido, sin duda es mejor usar C ++ o C #, o incluso Delphi.

Pero si está más familiarizado con Java, puede hacerlo.

Si elige el (antiguo) JNI, tendría que escribir una DLL en C o Delphi que usará la aplicación Java. En su lugar, debe usar JNA para acceder a la ventana de Windows que maneja las funciones de la API.

Algunas de las funciones que usarías son:

HWND WINAPI GetWindow(HWND hWnd, UINT uCmd); HWND WINAPI FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName); BOOL WINAPI EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam); HWND WINAPI WindowFromPoint(POINT Point); BOOL WINAPI MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);

Una vez que obtenga el identificador de ventana (HWND), puede hacer lo que quiera con esa ventana.

Referencia de funciones de EnumWindows en MSDN

He estado contemplando hacer un administrador de ventanas con una GUI, probablemente en Java. Sin embargo, estoy luchando para descubrir la mejor manera de mover ventanas que no son propiedad de mi programa.

Hasta ahora, parece que debería usar JNI para interactuar con la API de Windows, pero no he encontrado ejemplos útiles.

¿Alguien sabe como hacer esto?

¡Gracias!

PD. No estoy necesariamente vinculado a Java, si hay un mejor lenguaje para hacerlo.