Pregunta

En una aplicación Java (JRE 1.5.0_12) en Windows XP, llamo a un método nativo:

public native int attachImage( ... );

... que vive en un Visual C ++ 6.0 .dll. Muestra una ventana modal de aplicación. El problema es que el icono de la bandeja de la aplicación no responde a los clics del mouse mientras esta ventana tiene el foco. Este es un problema porque cuando se muestra esta ventana, los usuarios a menudo cambian a otra aplicación para seleccionar la imagen que se adjuntará, y luego desean restaurar esta aplicación.

¿Fue útil?

Solución

¿Qué paquete de GUI estás usando?

Debería poder implementar esto sin recurrir a llamadas JNI.

Por ejemplo, en SWT, puede abrir un shell modal de aplicación como este:

Shell shell = new Shell(display,SWT.APPLICATION_MODAL);

Para swing, esto sería:

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);

Otros consejos

¿Su método attachImage no establece correctamente la ventana principal en la ventana de su aplicación java? Obtener un hwnd para eso podría ser complicado (GetForegroundWindow / etc?) Pero podría ser necesario?

Además, ¿por qué la parte de la imagen debe ser JNI? que podría ayudarnos a encontrarle una solución que evite la parte JNI por completo?

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