Domanda

In un'applicazione Java (JRE 1.5.0_12) su Windows XP, chiamo un metodo nativo:

public native int attachImage( ... );

... che vive in una DLL di Visual C ++ 6.0. Visualizza una finestra modale dell'applicazione. Il problema è che l'icona nella barra delle applicazioni non risponde ai clic del mouse mentre questa finestra è attiva. Questo è un problema perché quando viene visualizzata questa finestra, gli utenti passano spesso a un'altra applicazione per selezionare l'immagine da allegare, quindi vogliono ripristinare questa applicazione.

È stato utile?

Soluzione

Quale pacchetto di GUI stai usando?

Dovresti essere in grado di implementarlo senza ricorrere alle chiamate JNI.

Ad esempio, in SWT, è possibile aprire una shell modale dell'applicazione come questa:

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

Per lo swing, questo sarebbe:

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);

Altri suggerimenti

Il metodo attachImage non imposta correttamente la finestra principale sulla finestra dell'applicazione Java? Ottenere un hwnd per questo potrebbe essere complicato (GetForegroundWindow / etc?) Ma potrebbe essere necessario?

Inoltre, perché la parte dell'immagine deve essere JNI? ciò potrebbe aiutarci a trovare una soluzione che eviti del tutto la parte JNI?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top