在Windows XP上的Java应用程序(JRE 1.5.0_12)中,我调用了一个本机方法:
public native int attachImage( ... );
...它存在于Visual C ++ 6.0 .dll中。它显示一个应用程序模式窗口。问题是,当此窗口具有焦点时,应用程序的托盘图标不响应鼠标点击。这是一个问题,因为当显示此窗口时,用户经常切换到另一个应用程序以选择要附加的图像,然后想要恢复此应用程序。
答案 0 :(得分:1)
您使用的是哪个GUI包?
您应该能够在不诉诸JNI呼叫的情况下实现此目的。
例如,在SWT中,您可以打开这样的应用程序模式shell:
Shell shell = new Shell(display,SWT.APPLICATION_MODAL);
对于挥杆,这将是:
dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
答案 1 :(得分:0)
您的attachImage方法是否未正确设置父窗口到您的Java应用程序窗口?得到一个hwnd可能是棘手的(GetForegroundWindow / etc?)但它可能是必要的?
另外,为什么图像部分需要是JNI?这可能有助于我们找到一个完全避免JNI部分的解决方案?